/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-gilchrist-letter { background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 30%, #b89870 100%), radial-gradient(ellipse at 60% 40%, #fff3d0 0%, transparent 60%); }
.scn-gilchrist-letter .backdrop { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e8d5b0 0%, #d4b896 100%); box-shadow: inset 0 -20px 30px rgba(0,0,0,.1); }
.scn-gilchrist-letter .desk { position:absolute; bottom:0; left:5%; right:5%; height:55%; background: linear-gradient(180deg, #8b6f4a 0%, #5c4a32 100%); border-radius:4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.3); transform: perspective(800px) rotateX(8deg); }
.scn-gilchrist-letter .letter { position:absolute; bottom:35%; left:35%; width:26%; height:18%; background: linear-gradient(180deg, #fffbe8 0%, #f0e2c0 100%); border: 1px solid #c8b090; border-radius:2%; box-shadow: 0 4px 12px rgba(0,0,0,.2); transform: rotate(-4deg); animation: gl-letter 5s ease-in-out infinite; }
.scn-gilchrist-letter .inkwell { position:absolute; bottom:38%; left:58%; width:5%; height:4%; background: radial-gradient(circle, #3a2a1a 0%, #1a120a 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-gilchrist-letter .hand-shadow { position:absolute; bottom:30%; left:42%; width:18%; height:24%; background: linear-gradient(180deg, rgba(40,30,20,.4) 0%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gl-hand 4s ease-in-out infinite alternate; }
.scn-gilchrist-letter .lamp-glow { position:absolute; top:0; right:10%; width:30%; height:70%; background: radial-gradient(ellipse at 50% 0%, #ffdd90 0%, #ffc860 40%, transparent 70%); filter: blur(10px); opacity:.7; animation: gl-lamp 6s ease-in-out infinite alternate; }
@keyframes gl-letter { 0%,100% { transform: rotate(-4deg); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes gl-hand { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(8px) rotate(6deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes gl-lamp { 0% { opacity:.6; filter: blur(12px); } 50% { opacity:.8; filter: blur(8px); } 100% { opacity:.7; filter: blur(10px); } }

.scn-bannister-explains-loyalty { background: linear-gradient(180deg, #f4e4c8 0%, #dcc49c 40%, #c4a87c 100%), radial-gradient(ellipse at 30% 70%, #fff2d0 0%, transparent 60%); }
.scn-bannister-explains-loyalty .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #ede1c8 0%, #d4c0a0 100%); }
.scn-bannister-explains-loyalty .window-frame { position:absolute; top:8%; left:8%; width:30%; height:50%; background: linear-gradient(135deg, #b8a080 0%, #8a7050 100%); border-radius:4%; box-shadow: inset 0 0 0 6px #6a5030; }
.scn-bannister-explains-loyalty .chair { position:absolute; bottom:25%; right:20%; width:25%; height:40%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: -4px 0 12px rgba(0,0,0,.3); }
.scn-bannister-explains-loyalty .standing-figure { position:absolute; bottom:20%; left:30%; width:14%; height:50%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center; animation: be-stand 6s ease-in-out infinite; }
.scn-bannister-explains-loyalty .seated-figure { position:absolute; bottom:23%; right:25%; width:16%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: be-seat 5s ease-in-out infinite alternate; }
.scn-bannister-explains-loyalty .rug { position:absolute; bottom:0; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:40% 40% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.15); }
@keyframes be-stand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes be-seat { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }

.scn-bannisters-past { background: linear-gradient(180deg, #f2e0c4 0%, #d8c4a4 50%, #bfa888 100%), radial-gradient(ellipse at 50% 80%, #fff5dc 0%, transparent 70%); }
.scn-bannisters-past .bg-fade { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e8d4b8 0%, #d4bc98 100%); opacity:.8; animation: bp-fade 12s ease-in-out infinite alternate; }
.scn-bannisters-past .door-arch { position:absolute; top:0; left:30%; width:40%; height:70%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 0 0 8px #503820; }
.scn-bannisters-past .old-butler { position:absolute; bottom:20%; left:25%; width:16%; height:55%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center; animation: bp-butler 8s ease-in-out infinite; }
.scn-bannisters-past .young-boy { position:absolute; bottom:22%; left:45%; width:12%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bp-boy 7s ease-in-out infinite alternate; }
.scn-bannisters-past .tray { position:absolute; bottom:30%; left:35%; width:18%; height:3%; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius:10%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: bp-tray 5s ease-in-out infinite; }
.scn-bannisters-past .dust-motes { position:absolute; top:10%; left:0; right:0; height:10px; background: radial-gradient(circle at 30%, rgba(255,220,160,.2) 0%, transparent 50%); filter: blur(4px); animation: bp-dust 30s linear infinite; }
@keyframes bp-fade { 0%,100% { opacity:.6; } 50% { opacity:.9; } }
@keyframes bp-butler { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes bp-boy { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes bp-tray { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px) rotate(2deg); } }
@keyframes bp-dust { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-bannister-covers-for-gilchrist { background: linear-gradient(180deg, #f0dec0 0%, #d8c4a0 50%, #bea880 100%), radial-gradient(ellipse at 20% 60%, #fff4d4 0%, transparent 60%); }
.scn-bannister-covers-for-gilchrist .room-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e4d0b0 0%, #ccb490 100%); }
.scn-bannister-covers-for-gilchrist .coat-stand { position:absolute; bottom:15%; left:12%; width:8%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10%; box-shadow: 2px 0 8px rgba(0,0,0,.2); }
.scn-bannister-covers-for-gilchrist .gloves-hanging { position:absolute; bottom:45%; left:10%; width:12%; height:15%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 30% 30% 40% 40% / 50% 50% 20% 20%; transform-origin: top center; animation: bc-gloves 6s ease-in-out infinite alternate; }
.scn-bannister-covers-for-gilchrist .chair-blocking { position:absolute; bottom:5%; left:30%; width:30%; height:45%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 15% 15% 10% 10% / 30% 30% 20% 20%; box-shadow: -6px 0 15px rgba(0,0,0,.4); }
.scn-bannister-covers-for-gilchrist .shadow-figure { position:absolute; bottom:20%; right:20%; width:15%; height:50%; background: linear-gradient(180deg, rgba(30,20,10,.6) 0%, transparent 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom right; animation: bc-shadow 8s ease-in-out infinite; }
.scn-bannister-covers-for-gilchrist .lamp-shine { position:absolute; top:5%; left:5%; width:40%; height:40%; background: radial-gradient(ellipse at 30% 20%, #ffdd80 0%, transparent 70%); filter: blur(5px); opacity:.6; animation: bc-shine 5s ease-in-out infinite alternate; }
@keyframes bc-gloves { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(4deg) translateY(-3px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes bc-shadow { 0%,100% { opacity:.3; } 50% { opacity:.6; } }
@keyframes bc-shine { 0% { opacity:.5; filter: blur(6px); } 50% { opacity:.8; filter: blur(4px); } 100% { opacity:.6; filter: blur(5px); } }

.scn-holmes-bargains {
  background: radial-gradient(ellipse at 40% 60%, #b86a38 0%, #3a1a0a 70%) , linear-gradient(180deg, #0a0a0a 0%, #2a1a0a 50%, #1a0a00 100%);
  position: relative;
  overflow: hidden;
}
.scn-holmes-bargains .fire-glow { position: absolute; bottom: 0; left: 0; width: 100%; height: 40%; background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #b86a38 40%, transparent 70%); animation: hb-fire 3s ease-in-out infinite alternate; }
.scn-holmes-bargains .wall-left { position: absolute; top: 0; left: 0; width: 25%; height: 100%; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 100%); }
.scn-holmes-bargains .wall-right { position: absolute; top: 0; right: 0; width: 25%; height: 100%; background: linear-gradient(-90deg, #2a1a0a 0%, #3a2a1a 100%); }
.scn-holmes-bargains .floor { position: absolute; bottom: 0; left: 25%; right: 25%; height: 30%; background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 0 0; }
.scn-holmes-bargains .table { position: absolute; bottom: 15%; left: 30%; width: 40%; height: 8%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; transform: perspective(400px) rotateX(10deg); }
.scn-holmes-bargains .figure-holmes { position: absolute; bottom: 22%; left: 38%; width: 12%; height: 35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: hb-sit 6s ease-in-out infinite; }
.scn-holmes-bargains .figure-client { position: absolute; bottom: 22%; right: 35%; width: 10%; height: 30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform: rotate(3deg); animation: hb-sit 6s ease-in-out infinite reverse; }
.scn-holmes-bargains .flicker { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, rgba(255, 140, 66, 0.15) 0%, transparent 60%); animation: hb-flicker 2s ease-in-out infinite alternate; }

@keyframes hb-fire { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.8; transform: scaleY(0.95); } }
@keyframes hb-sit { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes hb-flicker { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-holmes-stops-milverton {
  background: radial-gradient(ellipse at 50% 60%, #7a3a1a 0%, #1a0a00 70%), linear-gradient(180deg, #0a0a0a 0%, #2a1a0a 100%);
  position: relative;
  overflow: hidden;
}
.scn-holmes-stops-milverton .bg-shadow { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, #0a0a0a 100%); }
.scn-holmes-stops-milverton .fireplace { position: absolute; bottom: 0; left: 50%; width: 30%; height: 60%; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 100%, #8a4a2a 0%, transparent 60%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 40px rgba(138, 74, 42, 0.5); }
.scn-holmes-stops-milverton .mantel { position: absolute; top: 40%; left: 50%; width: 34%; height: 4%; transform: translateX(-50%); background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 50%, #4a2a1a 100%); border-radius: 4px; }
.scn-holmes-stops-milverton .holmes-silhouette { position: absolute; bottom: 10%; left: 30%; width: 12%; height: 50%; background: linear-gradient(180deg, #0a0a0a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-8deg); animation: sm-shift 2s ease-in-out infinite alternate; }
.scn-holmes-stops-milverton .milverton-silhouette { position: absolute; bottom: 10%; right: 30%; width: 14%; height: 55%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform: rotate(5deg); animation: sm-shift 2.5s ease-in-out infinite alternate; }
.scn-holmes-stops-milverton .letter { position: absolute; bottom: 30%; right: 28%; width: 6%; height: 8%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px; transform: rotate(15deg); box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: sm-letter 3s ease-in-out infinite alternate; }
.scn-holmes-stops-milverton .ember-1 { position: absolute; bottom: 5%; left: 55%; width: 4px; height: 4px; background: #ff8c42; border-radius: 50%; box-shadow: 0 0 10px 3px #ff8c42; animation: sm-ember 1.5s ease-out infinite; }
.scn-holmes-stops-milverton .ember-2 { position: absolute; bottom: 8%; left: 48%; width: 3px; height: 3px; background: #ffa55a; border-radius: 50%; box-shadow: 0 0 8px 2px #ffa55a; animation: sm-ember 2s ease-out infinite 0.7s; }

@keyframes sm-shift { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-6deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(-2px); } }
@keyframes sm-letter { 0%,100% { transform: rotate(15deg) translateY(0); opacity: 0.9; } 50% { transform: rotate(20deg) translateY(-5px); opacity: 1; } }
@keyframes sm-ember { 0% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(-40px) scale(0.3); opacity: 0; } }

.scn-milverton-threatens {
  background: radial-gradient(ellipse at 50% 70%, #3a1a0a 0%, #0a0000 80%), linear-gradient(180deg, #0a0a0a 0%, #1a0a00 100%);
  position: relative;
  overflow: hidden;
}
.scn-milverton-threatens .abyss { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 30%, #0a0000 70%); }
.scn-milverton-threatens .fire-source { position: absolute; bottom: 0; left: 50%; width: 20%; height: 30%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #b86a38 0%, transparent 70%); animation: mt-fire 4s ease-in-out infinite alternate; }
.scn-milverton-threatens .milverton-hand { position: absolute; bottom: 25%; right: 20%; width: 8%; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; transform: rotate(-10deg); animation: mt-hand 3s ease-in-out infinite alternate; }
.scn-milverton-threatens .envelope { position: absolute; bottom: 35%; right: 18%; width: 6%; height: 4%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px; transform: rotate(20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.7); animation: mt-envelope 5s ease-in-out infinite; }
.scn-milverton-threatens .coat-arms { position: absolute; top: 36%; right: 17.5%; width: 5%; height: 5%; background: radial-gradient(circle, #a04a2a 0%, #5a2a1a 70%); border-radius: 50%; box-shadow: 0 0 6px 2px #a04a2a; animation: mt-seal 2s ease-in-out infinite alternate; }
.scn-milverton-threatens .shadow-figure { position: absolute; bottom: 10%; left: 30%; width: 15%; height: 60%; background: linear-gradient(180deg, #0a0a0a 0%, #0a0a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; }

@keyframes mt-fire { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.15); } 100% { opacity: 0.7; transform: scaleY(0.9); } }
@keyframes mt-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(-5px); } 100% { transform: rotate(-12deg) translateX(2px); } }
@keyframes mt-envelope { 0%,100% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-4px); } }
@keyframes mt-seal { 0% { opacity: 0.8; box-shadow: 0 0 6px 2px #a04a2a; } 100% { opacity: 1; box-shadow: 0 0 12px 4px #a04a2a; } }

.scn-holmes-attempts-trick {
  background: radial-gradient(ellipse at 50% 60%, #b86a38 0%, #1a0a00 70%), linear-gradient(180deg, #0a0a0a 0%, #2a1a0a 100%);
  position: relative;
  overflow: hidden;
}
.scn-holmes-attempts-trick .flame-bg { position: absolute; bottom: 0; left: 0; width: 100%; height: 60%; background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #b86a38 40%, transparent 70%); animation: ha-flame 2.5s ease-in-out infinite alternate; }
.scn-holmes-attempts-trick .holmes-back { position: absolute; bottom: 10%; left: 15%; width: 18%; height: 65%; background: linear-gradient(180deg, #0a0a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); }
.scn-holmes-attempts-trick .milverton-front { position: absolute; bottom: 10%; right: 15%; width: 16%; height: 60%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; }
.scn-holmes-attempts-trick .desk { position: absolute; bottom: 5%; left: 10%; right: 10%; height: 12%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; transform: perspective(300px) rotateX(5deg); }
.scn-holmes-attempts-trick .money-bag { position: absolute; bottom: 12%; left: 45%; width: 8%; height: 10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ha-bag 4s ease-in-out infinite; }
.scn-holmes-attempts-trick .candle { position: absolute; bottom: 20%; left: 48%; width: 2%; height: 12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10%; }
.scn-holmes-attempts-trick .wax-drip { position: absolute; bottom: 20%; left: 48%; width: 1px; height: 8%; background: #8a5a3a; transform: translateX(-1px); animation: ha-drip 6s ease-in-out infinite; }
.scn-holmes-attempts-trick .smoke { position: absolute; top: 15%; left: 50%; width: 8%; height: 12%; background: radial-gradient(circle, rgba(200,140,100,0.3) 0%, transparent 70%); filter: blur(6px); animation: ha-smoke 8s linear infinite; }

@keyframes ha-flame { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.8; transform: scaleY(0.95); } }
@keyframes ha-bag { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ha-drip { 0% { height: 8%; opacity: 1; } 50% { height: 14%; opacity: 0.6; } 100% { height: 8%; opacity: 1; } }
@keyframes ha-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 100% { transform: translateY(-60px) scale(1.5); opacity: 0; } }

.scn-chair-and-cord {
  background: 
    radial-gradient(ellipse at 50% 100%, #6a3a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a0a05 0%, #2a1508 40%, #3a2010 100%);
}
.scn-chair-and-cord .fireplace-glow { position:absolute; bottom:10%; left:10%; width:80%; height:50%; background: radial-gradient(ellipse at 50% 100%, #f08030 0%, #c05020 50%, transparent 70%); animation: ch-fire 4s ease-in-out infinite alternate; }
.scn-chair-and-cord .chair-back { position:absolute; bottom:30%; left:35%; width:30%; height:45%; background: linear-gradient(135deg, #4a2a1a 0%, #2a1508 100%); border-radius:10% 10% 0 0; transform: perspective(300px) rotateX(5deg); animation: ch-rock 6s ease-in-out infinite; }
.scn-chair-and-cord .chair-seat { position:absolute; bottom:25%; left:35%; width:30%; height:8%; background: #3a1f0f; border-radius:0 0 5% 5%; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-chair-and-cord .arm-left { position:absolute; bottom:32%; left:33%; width:5%; height:30%; background: #3a1f0f; border-radius:30% 30% 0 0; transform: rotate(10deg); }
.scn-chair-and-cord .arm-right { position:absolute; bottom:32%; right:33%; width:5%; height:30%; background: #3a1f0f; border-radius:30% 30% 0 0; transform: rotate(-10deg); }
.scn-chair-and-cord .cord { position:absolute; bottom:26%; left:38%; width:24%; height:2px; background: #a8462c; border-radius:50%; box-shadow: 0 0 4px #a8462c; animation: ch-cord 2s ease-in-out infinite; }
.scn-chair-and-cord .crossbar { position:absolute; bottom:26%; left:35%; width:30%; height:3px; background: #2a1508; border-radius:2px; }
@keyframes ch-fire { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.8; transform: scaleY(.95); } }
@keyframes ch-rock { 0% { transform: perspective(300px) rotateX(5deg) translateY(0); } 50% { transform: perspective(300px) rotateX(6deg) translateY(-2px); } 100% { transform: perspective(300px) rotateX(5deg) translateY(0); } }
@keyframes ch-cord { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg); } 75% { transform: translateX(-2px) rotate(-5deg); } }

.scn-body-sir-eustace {
  background:
    radial-gradient(circle at 50% 60%, #6a3a1a 0%, transparent 60%),
    linear-gradient(180deg, #2a1508 0%, #1a0a05 100%);
}
.scn-body-sir-eustace .body-torso { position:absolute; bottom:20%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius:10% 10% 5% 5%; transform: rotate(2deg); }
.scn-body-sir-eustace .head { position:absolute; bottom:45%; left:43%; width:14%; height:12%; background: #1a0a05; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: bs-head 8s ease-in-out infinite; }
.scn-body-sir-eustace .arm-left { position:absolute; bottom:32%; left:28%; width:8%; height:20%; background: #1a0a05; border-radius:30% 30% 0 0; transform: rotate(30deg); transform-origin: bottom; }
.scn-body-sir-eustace .arm-right { position:absolute; bottom:32%; right:28%; width:8%; height:20%; background: #1a0a05; border-radius:30% 30% 0 0; transform: rotate(-30deg); transform-origin: bottom; }
.scn-body-sir-eustace .stick { position:absolute; bottom:35%; left:35%; width:30%; height:3px; background: #2a1508; border-radius:2px; transform: rotate(-10deg); box-shadow: 0 0 4px rgba(0,0,0,.6); animation: bs-stick 5s ease-in-out infinite; }
.scn-body-sir-eustace .shadow-floor { position:absolute; bottom:0%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); }
.scn-body-sir-eustace .light-pool { position:absolute; bottom:15%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse, rgba(240,180,80,.15) 0%, transparent 60%); animation: bs-light 6s ease-in-out infinite alternate; }
@keyframes bs-head { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes bs-stick { 0%,100% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-8deg) scaleX(1.02); } }
@keyframes bs-light { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }

.scn-fatal-blow {
  background:
    radial-gradient(ellipse at 40% 50%, #5a2a0a 0%, transparent 60%),
    linear-gradient(180deg, #2a1008 0%, #1a0500 100%);
}
.scn-fatal-blow .poker-curved { position:absolute; bottom:30%; left:25%; width:50%; height:6px; background: #3a1a0a; border-radius:50% 0 0 50%; transform: rotate(-20deg) scaleX(1.2); animation: fb-poker 3s ease-in-out infinite; }
.scn-fatal-blow .head-silhouette { position:absolute; bottom:40%; left:45%; width:12%; height:10%; background: #0a0500; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); }
.scn-fatal-blow .poker-shadow { position:absolute; bottom:28%; left:20%; width:55%; height:2px; background: rgba(0,0,0,.4); border-radius:50%; transform: rotate(-18deg); }
.scn-fatal-blow .carpet-stain { position:absolute; bottom:25%; left:35%; width:30%; height:15%; background: radial-gradient(ellipse, #4a1a0a 0%, transparent 70%); border-radius:50%; animation: fb-stain 8s ease-in-out infinite alternate; }
.scn-fatal-blow .table-edge { position:absolute; bottom:50%; left:10%; width:80%; height:4px; background: #2a1008; border-radius:2px; transform: perspective(200px) rotateX(10deg); }
@keyframes fb-poker { 0%,100% { transform: rotate(-20deg) scaleX(1.2) translateY(0); } 50% { transform: rotate(-22deg) scaleX(1.22) translateY(-1px); } }
@keyframes fb-stain { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.5; transform: scale(1.05); } 100% { opacity:.4; transform: scale(1.02); } }

.scn-oddity-of-case {
  background:
    radial-gradient(circle at 50% 100%, #6a4a2a 0%, transparent 60%),
    linear-gradient(180deg, #4a2a1a 0%, #2a1508 50%, #1a0a05 100%);
}
.scn-oddity-of-case .figure-left { position:absolute; bottom:25%; left:20%; width:15%; height:30%; background: linear-gradient(180deg, #3a2010 0%, #1a0a05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-2deg); animation: oc-fig 9s ease-in-out infinite; }
.scn-oddity-of-case .figure-right { position:absolute; bottom:25%; right:20%; width:15%; height:30%; background: linear-gradient(180deg, #2a1508 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(2deg); animation: oc-fig 9s ease-in-out infinite reverse; }
.scn-oddity-of-case .chair-left { position:absolute; bottom:20%; left:18%; width:20%; height:20%; background: #2a1508; border-radius:10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-oddity-of-case .chair-right { position:absolute; bottom:20%; right:18%; width:20%; height:20%; background: #2a1508; border-radius:10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-oddity-of-case .desk { position:absolute; bottom:10%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 100%); border-radius:5% 5% 0 0; }
.scn-oddity-of-case .lamp-glow { position:absolute; bottom:35%; left:50%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 100%, #f0b050 0%, transparent 60%); animation: oc-lamp 5s ease-in-out infinite alternate; }
@keyframes oc-fig { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } }
@keyframes oc-lamp { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.8; transform: scaleY(.95); } }

.scn-night-preparations { background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%), radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 70%); }
.scn-night-preparations .wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-night-preparations .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-night-preparations .fireplace { position:absolute; bottom:30%; left:50%; width:120px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:20% 20% 5% 5%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); }
.scn-night-preparations .fire    { position:absolute; bottom:40%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff6000 50%, transparent 80%); border-radius:50% 50% 30% 30%; animation: np-fire 2s ease-in-out infinite alternate; }
.scn-night-preparations .sofa    { position:absolute; bottom:20%; left:30%; width:100px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20px 20px 5px 5px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-night-preparations .figure  { position:absolute; bottom:20%; left:33%; width:24px; height:50px; background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-figure 6s ease-in-out infinite; }
.scn-night-preparations .spirit-lamp { position:absolute; bottom:18%; right:20%; width:12px; height:18px; background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); border-radius:30% 30% 20% 20%; animation: np-lamp 3s ease-in-out infinite alternate; }
.scn-night-preparations .coffee-cup { position:absolute; bottom:18%; right:30%; width:14px; height:10px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:0 0 30% 30%; }
@keyframes np-fire    { 0% { transform:translateX(-50%) scaleX(1) scaleY(1); opacity:.9; } 50% { transform:translateX(-50%) scaleX(1.1) scaleY(1.05); opacity:1; } 100% { transform:translateX(-50%) scaleX(.95) scaleY(.92); opacity:.85; } }
@keyframes np-figure  { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes np-lamp    { 0% { box-shadow: 0 0 8px 2px rgba(255,200,150,.6); } 50% { box-shadow: 0 0 16px 4px rgba(255,200,150,.9); } 100% { box-shadow: 0 0 10px 3px rgba(255,200,150,.5); } }

.scn-journey-to-yoxley { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #e0f0ff 70%), radial-gradient(ellipse at 80% 20%, #fff4e0 0%, transparent 60%); }
.scn-journey-to-yoxley .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0d0ee 0%, #c0e0f0 100%); }
.scn-journey-to-yoxley .road   { position:absolute; bottom:25%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0; }
.scn-journey-to-yoxley .horse  { position:absolute; bottom:30%; left:30%; width:60px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 40% 30% 50%; animation: jy-horse 4s ease-in-out infinite; }
.scn-journey-to-yoxley .trap   { position:absolute; bottom:30%; left:38%; width:70px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-journey-to-yoxley .figure-driver { position:absolute; bottom:38%; left:40%; width:16px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: jy-driver 4s ease-in-out infinite; }
.scn-journey-to-yoxley .inn    { position:absolute; bottom:40%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #c0a880 0%, #8a7050 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-journey-to-yoxley .sun    { position:absolute; top:5%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff4a0 0%, #ffe870 40%, transparent 70%); border-radius: 50%; animation: jy-sun 30s linear infinite; }
@keyframes jy-horse   { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2px) translateY(-1px); } 50% { transform: translateX(4px) translateY(0); } 75% { transform: translateX(2px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes jy-driver  { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes jy-sun     { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.9; transform: scale(.95); } }

.scn-inquiries-at-inns { background: linear-gradient(180deg, #7a8a8a 0%, #9a9a8a 50%, #b0a090 100%), radial-gradient(ellipse at 50% 100%, #8a7a6a 0%, transparent 70%); }
.scn-inquiries-at-inns .sky-overcast  { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a9a9a 0%, #b0b0a0 100%); }
.scn-inquiries-at-inns .path          { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 0 0; }
.scn-inquiries-at-inns .grass-left    { position:absolute; bottom:20%; left:5%; width:15%; height:20%; background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 100%); border-radius: 40% 60% 0 0; }
.scn-inquiries-at-inns .grass-right   { position:absolute; bottom:20%; right:5%; width:15%; height:20%; background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 100%); border-radius: 60% 40% 0 0; }
.scn-inquiries-at-inns .inn-building  { position:absolute; bottom:40%; left:35%; width:100px; height:120px; background: linear-gradient(180deg, #a09080 0%, #7a6a5a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.4); }
.scn-inquiries-at-inns .inn-sign      { position:absolute; bottom:55%; left:45%; width:30px; height:20px; background: linear-gradient(135deg, #c0a050 0%, #a08030 100%); border-radius: 10%; transform-origin: center bottom; animation: ii-sign 8s ease-in-out infinite; }
.scn-inquiries-at-inns .footprints    { position:absolute; bottom:20%; left:15%; width:30%; height:10%; background: repeating-linear-gradient(90deg, rgba(40,30,20,.6) 0px, rgba(40,30,20,.6) 4px, transparent 4px, transparent 12px); animation: ii-footprints 5s ease-in-out infinite alternate; }
@keyframes ii-sign    { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes ii-footprints { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.4; } }

.scn-grass-border { background: linear-gradient(180deg, #6a7a5a 0%, #8a9a7a 50%, #9aaa8a 100%), radial-gradient(ellipse at 50% 80%, #7a8a6a 0%, transparent 80%); }
.scn-grass-border .path             { position:absolute; bottom:20%; left:25%; right:25%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 0 0; }
.scn-grass-border .grass-border-left  { position:absolute; bottom:10%; left:10%; width:15%; height:30%; background: linear-gradient(180deg, #5a6a3a 0%, #2a3a1a 100%); border-radius: 40% 60% 0 0; }
.scn-grass-border .grass-border-right { position:absolute; bottom:10%; right:10%; width:15%; height:30%; background: linear-gradient(180deg, #5a6a3a 0%, #2a3a1a 100%); border-radius: 60% 40% 0 0; }
.scn-grass-border .footprints       { position:absolute; bottom:20%; left:30%; width:20%; height:8%; background: repeating-linear-gradient(90deg, rgba(30,20,10,.8) 0px, rgba(30,20,10,.8) 3px, transparent 3px, transparent 10px); animation: gb-footprints 4s ease-in-out infinite alternate; }
.scn-grass-border .figure-holmes    { position:absolute; bottom:30%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: gb-holmes 6s ease-in-out infinite; }
.scn-grass-border .magnifier        { position:absolute; bottom:35%; left:25%; width:10px; height:14px; background: radial-gradient(circle, #a0a0a0 0%, #606060 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 4px 2px rgba(200,200,200,.3); animation: gb-magnifier 3s ease-in-out infinite alternate; }
.scn-grass-border .blade-of-grass   { position:absolute; bottom:20%; left:40%; width:2px; height:20px; background: linear-gradient(180deg, #4a6a2a 0%, #2a3a1a 100%); border-radius: 20%; transform-origin: bottom; animation: gb-blade 2s ease-in-out infinite; }
@keyframes gb-footprints { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes gb-holmes  { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gb-magnifier { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes gb-blade   { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }

.scn-key-in-door {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 40%, #a89878 100%),
              radial-gradient(ellipse at 50% 80%, #f0e0c0 0%, transparent 70%);
}
.scn-key-in-door .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(180,160,130,0.3) 0%, transparent 100%);
  animation: kd-wall 12s ease-in-out infinite alternate;
}
.scn-key-in-door .door-outer {
  position: absolute; left: 30%; bottom: 10%; width: 120px; height: 200px;
  background: linear-gradient(180deg, #5c4030 0%, #3e2a1c 100%);
  border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,0.4);
  animation: kd-door 8s ease-in-out infinite;
}
.scn-key-in-door .door-inner {
  position: absolute; left: 35%; bottom: 15%; width: 100px; height: 180px;
  background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%);
  border-radius: 3px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: kd-inner 6s ease-in-out infinite alternate;
}
.scn-key-in-door .keyhole {
  position: absolute; left: 40%; bottom: 40%; width: 8px; height: 6px;
  background: #1a1a1a; border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.5);
  animation: kd-hole 4s ease-in-out infinite;
}
.scn-key-in-door .key {
  position: absolute; left: 39%; bottom: 42%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-10deg); animation: kd-key 3s ease-in-out infinite;
}
.scn-key-in-door .shadow {
  position: absolute; left: 25%; bottom: 8%; width: 180px; height: 80px;
  background: radial-gradient(ellipse at 50% 0%, rgba(50,40,30,0.4) 0%, transparent 70%);
  animation: kd-shadow 10s ease-in-out infinite alternate;
}
.scn-key-in-door .light {
  position: absolute; top: 20%; left: 20%; width: 100%; height: 60%;
  background: radial-gradient(ellipse at 30% 60%, rgba(255,230,180,0.3) 0%, transparent 60%);
  animation: kd-light 5s ease-in-out infinite alternate;
}
@keyframes kd-wall { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes kd-door { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) translateY(-2px) } }
@keyframes kd-inner { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes kd-hole { 0%,100% { transform: scale(1) } 50% { transform: scale(1.3) } }
@keyframes kd-key { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(2px) } }
@keyframes kd-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }
@keyframes kd-light { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.8; transform: scale(0.98) } }

.scn-bannisters-key-carelessness {
  background: linear-gradient(180deg, #d0c0a8 0%, #b8a888 40%, #a09070 100%),
              radial-gradient(ellipse at 50% 70%, #f8e8c8 0%, transparent 70%);
}
.scn-bannisters-key-carelessness .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(160,140,110,0.2) 0%, transparent 100%);
  animation: bk-wall 10s ease-in-out infinite alternate;
}
.scn-bannisters-key-carelessness .door-outer {
  position: absolute; left: 40%; bottom: 10%; width: 130px; height: 200px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 6px 0 15px rgba(0,0,0,0.5);
  animation: bk-door 9s ease-in-out infinite;
}
.scn-bannisters-key-carelessness .door-inner {
  position: absolute; left: 45%; bottom: 15%; width: 100px; height: 180px;
  background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%);
  border-radius: 3px; box-shadow: inset 0 0 12px rgba(0,0,0,0.4);
  animation: bk-inner 7s ease-in-out infinite alternate;
}
.scn-bannisters-key-carelessness .keyhole {
  position: absolute; left: 50%; bottom: 42%; width: 8px; height: 6px;
  background: #1a1a1a; border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(0,0,0,0.6);
  animation: bk-hole 5s ease-in-out infinite;
}
.scn-bannisters-key-carelessness .key {
  position: absolute; left: 49%; bottom: 44%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #c0b0a0 0%, #908070 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(15deg); animation: bk-key 4s ease-in-out infinite;
}
.scn-bannisters-key-carelessness .figure {
  position: absolute; left: 20%; bottom: 10%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: bk-figure 6s ease-in-out infinite;
}
.scn-bannisters-key-carelessness .light {
  position: absolute; top: 15%; left: 30%; width: 80%; height: 50%;
  background: radial-gradient(ellipse at 60% 50%, rgba(255,240,200,0.25) 0%, transparent 60%);
  animation: bk-light 4s ease-in-out infinite alternate;
}
@keyframes bk-wall { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes bk-door { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-3px) } }
@keyframes bk-inner { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes bk-hole { 0%,100% { transform: scale(1) rotate(0) } 50% { transform: scale(1.2) rotate(5deg) } }
@keyframes bk-key { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-2px) } }
@keyframes bk-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(0) } 75% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bk-light { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.06) } 100% { opacity: 0.7; transform: scale(0.98) } }

.scn-papers-rummaged {
  background: linear-gradient(180deg, #c8b8a0 0%, #a89878 50%, #887868 100%),
              radial-gradient(ellipse at 50% 50%, #f0d8b8 0%, transparent 60%);
}
.scn-papers-rummaged .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(180,160,130,0.15) 0%, transparent 100%);
  animation: pr-wall 12s ease-in-out infinite alternate;
}
.scn-papers-rummaged .desk {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 8% 8% 4% 4%/6% 6% 3% 3%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.3);
  animation: pr-desk 8s ease-in-out infinite;
}
.scn-papers-rummaged .paper {
  position: absolute; width: 60px; height: 50px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
}
.scn-papers-rummaged .paper-1 {
  left: 15%; bottom: 25%; transform: rotate(-8deg);
  animation: pr-paper1 5s ease-in-out infinite;
}
.scn-papers-rummaged .paper-2 {
  left: 35%; bottom: 30%; transform: rotate(12deg);
  animation: pr-paper2 7s ease-in-out infinite;
}
.scn-papers-rummaged .paper-3 {
  left: 55%; bottom: 22%; transform: rotate(-3deg);
  animation: pr-paper3 6s ease-in-out infinite;
}
.scn-papers-rummaged .lamp {
  position: absolute; bottom: 45%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
  animation: pr-lamp 9s ease-in-out infinite alternate;
}
.scn-papers-rummaged .shadows {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,0.05) 0%, transparent 80%);
  animation: pr-shadows 11s ease-in-out infinite alternate;
}
@keyframes pr-wall { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.85 } }
@keyframes pr-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pr-paper1 { 0%,100% { transform: rotate(-8deg) translateX(0) } 50% { transform: rotate(-6deg) translateX(3px) } }
@keyframes pr-paper2 { 0%,100% { transform: rotate(12deg) translateX(0) } 50% { transform: rotate(15deg) translateX(-2px) } }
@keyframes pr-paper3 { 0%,100% { transform: rotate(-3deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(4px) } }
@keyframes pr-lamp { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes pr-shadows { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.6 } }

.scn-holmes-amazes-soames {
  background: linear-gradient(180deg, #dcc8b0 0%, #b8a080 40%, #988060 100%),
              radial-gradient(ellipse at 50% 70%, #f0d8c0 0%, transparent 70%);
}
.scn-holmes-amazes-soames .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(180,150,120,0.2) 0%, transparent 100%);
  animation: ha-wall 14s ease-in-out infinite alternate;
}
.scn-holmes-amazes-soames .table {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 25%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 10% 10% 5% 5% / 8% 8% 4% 4%;
  box-shadow: 0 -6px 15px rgba(0,0,0,0.3);
  animation: ha-table 10s ease-in-out infinite;
}
.scn-holmes-amazes-soames .holmes {
  position: absolute; bottom: 12%; left: 15%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ha-holmes 5s ease-in-out infinite;
}
.scn-holmes-amazes-soames .soames {
  position: absolute; bottom: 12%; left: 45%; width: 55px; height: 105px;
  background: linear-gradient(180deg, #2e2e44 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ha-soames 6s ease-in-out infinite;
}
.scn-holmes-amazes-soames .lamp {
  position: absolute; bottom: 45%; left: 50%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #c8a888 0%, #987060 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 15% 15%;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
  animation: ha-lamp 8s ease-in-out infinite alternate;
}
.scn-holmes-amazes-soames .light {
  position: absolute; top: 15%; left: 30%; width: 70%; height: 55%;
  background: radial-gradient(ellipse at 40% 60%, rgba(255,230,180,0.25) 0%, transparent 60%);
  animation: ha-light 4s ease-in-out infinite alternate;
}
@keyframes ha-wall { 0% { opacity: 0.75 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes ha-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ha-holmes { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(0) } 75% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ha-soames { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(-6px) rotate(0) } 75% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ha-lamp { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes ha-light { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.9; transform: scale(1.05) } 100% { opacity: 0.6; transform: scale(0.98) } }

.scn-return-letter { background: linear-gradient(135deg, #f5e6c8 0%, #e0d0b0 40%, #b8a88a 100%), radial-gradient(ellipse at 30% 70%, rgba(255,220,150,0.3) 0%, transparent 60%); }
.scn-return-letter .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc4 0%, #d4c4a8 100%); }
.scn-return-letter .desk { position:absolute; bottom:18%; left:10%; right:10%; height:28%; background: linear-gradient(180deg, #8b6f4e 0%, #5a4a34 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); animation: rl-desk 8s ease-in-out infinite; }
.scn-return-letter .box { position:absolute; bottom:36%; left:40%; width:75px; height:45px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius: 8%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: rl-box 3s ease-in-out infinite; }
.scn-return-letter .hand { position:absolute; bottom:32%; left:48%; width:30px; height:50px; background: linear-gradient(180deg, #2c2418 0%, #1a1410 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: 70% 80%; animation: rl-hand 4s ease-in-out infinite; }
.scn-return-letter .shadow-hand { position:absolute; bottom:30%; left:50%; width:28px; height:46px; background: rgba(20,16,12,0.4); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; filter: blur(6px); animation: rl-shadow 4s ease-in-out infinite; }
.scn-return-letter .light-beam { position:absolute; top:20%; left:20%; width:40%; height:80%; background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: rl-light 2s ease-in-out infinite alternate; }
@keyframes rl-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes rl-box { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(1px) rotate(-1deg); } }
@keyframes rl-hand { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(8px); } }
@keyframes rl-shadow { 0%,100% { transform: translateX(2px) translateY(4px); } 50% { transform: translateX(10px) translateY(6px); } }
@keyframes rl-light { 0% { opacity:0.6; } 100% { opacity:1; } }

.scn-lady-hildas-confession { background: linear-gradient(135deg, #f0e6d0 0%, #ddd0b8 50%, #c4b49a 100%), radial-gradient(ellipse at 70% 30%, rgba(255,210,150,0.25) 0%, transparent 60%); }
.scn-lady-hildas-confession .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc4 0%, #d0c0a8 100%); }
.scn-lady-hildas-confession .curtain { position:absolute; top:0; right:10%; width:35%; height:100%; background: linear-gradient(135deg, #a38a6e 0%, #7a6349 100%); border-radius: 0 0 0 40%; box-shadow: -4px 0 12px rgba(0,0,0,0.3); animation: lc-curtain 12s ease-in-out infinite; }
.scn-lady-hildas-confession .lamp { position:absolute; top:20%; left:15%; width:12px; height:40px; background: linear-gradient(180deg, #c8a86e 0%, #a6865a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,210,150,0.6); animation: lc-lamp 2s ease-in-out infinite alternate; }
.scn-lady-hildas-confession .lady { position:absolute; bottom:22%; left:25%; width:40px; height:90px; background: linear-gradient(180deg, #3a2e24 0%, #1e1812 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lc-lady 5s ease-in-out infinite; }
.scn-lady-hildas-confession .letter { position:absolute; bottom:40%; left:32%; width:30px; height:20px; background: linear-gradient(180deg, #fff8e8 0%, #e8dcc0 100%); border-radius: 4%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: lc-letter 3s ease-in-out infinite; }
.scn-lady-hildas-confession .shadow-letter { position:absolute; bottom:38%; left:34%; width:28px; height:18px; background: rgba(40,30,20,0.3); filter: blur(4px); animation: lc-shadow 3s ease-in-out infinite; }
@keyframes lc-curtain { 0%,100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@keyframes lc-lamp { 0% { opacity:0.7; box-shadow: 0 0 12px 4px rgba(255,210,150,0.4); } 50% { opacity:1; box-shadow: 0 0 28px 8px rgba(255,210,150,0.7); } 100% { opacity:0.8; box-shadow: 0 0 18px 5px rgba(255,210,150,0.5); } }
@keyframes lc-lady { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-2deg) translateY(-1px); } 60% { transform: rotate(2deg) translateY(0); } }
@keyframes lc-letter { 0%,100% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(-5deg) translateX(-2px); } 60% { transform: rotate(5deg) translateX(2px); } }
@keyframes lc-shadow { 0%,100% { transform: translateX(2px) translateY(3px); } 30% { transform: translateX(0) translateY(5px); } 60% { transform: translateX(4px) translateY(2px); } }

.scn-final-resolution { background: linear-gradient(135deg, #f5e8d0 0%, #e0d0b8 50%, #c8b8a0 100%), radial-gradient(ellipse at 60% 50%, rgba(255,220,180,0.2) 0%, transparent 70%); }
.scn-final-resolution .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc4 0%, #d0c0a8 100%); }
.scn-final-resolution .door { position:absolute; left:5%; top:10%; width:30%; height:90%; background: linear-gradient(135deg, #5a4a34 0%, #3a2e1e 100%); border-radius: 0 40% 40% 0; box-shadow: 4px 0 12px rgba(0,0,0,0.3); animation: fr-door 6s ease-in-out infinite; }
.scn-final-resolution .desk { position:absolute; bottom:18%; right:10%; width:45%; height:25%; background: linear-gradient(180deg, #8b6f4e 0%, #5a4a34 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-final-resolution .holmes { position:absolute; bottom:20%; right:30%; width:35px; height:80px; background: linear-gradient(180deg, #2c2418 0%, #1a1410 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fr-holmes 4s ease-in-out infinite; }
.scn-final-resolution .secretary { position:absolute; bottom:20%; left:12%; width:38px; height:85px; background: linear-gradient(180deg, #3a2e24 0%, #1e1812 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fr-secretary 3s ease-in-out infinite; }
.scn-final-resolution .shadow-door { position:absolute; left:28%; top:10%; width:20%; height:90%; background: rgba(30,24,16,0.25); filter: blur(8px); animation: fr-shadow 6s ease-in-out infinite; }
.scn-final-resolution .light-shaft { position:absolute; left:8%; top:0; width:40%; height:100%; background: linear-gradient(135deg, rgba(255,240,200,0.12) 0%, transparent 70%); clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%); animation: fr-light 3s ease-in-out infinite alternate; }
@keyframes fr-door { 0%,100% { transform: perspective(800px) rotateY(0deg); transform-origin: left center; } 50% { transform: perspective(800px) rotateY(-15deg); } }
@keyframes fr-holmes { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes fr-secretary { 0%,100% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(8px) rotate(1deg); } 60% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes fr-shadow { 0%,100% { transform: translateX(0); } 50% { transform: translateX(10px); } }
@keyframes fr-light { 0% { opacity:0.6; } 100% { opacity:1; } }

.scn-bannister-questioned { background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 40%, #9a8a6a 100%), radial-gradient(ellipse at 40% 30%, #f0e0c0 0%, transparent 60%); }
.scn-bannister-questioned .back-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%); border-bottom: 2px solid #b0a080; }
.scn-bannister-questioned .wood-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,0.3); }
.scn-bannister-questioned .study-table { position:absolute; bottom:20%; left:20%; width:35%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-bannister-questioned .papers-scattered { position:absolute; bottom:20%; left:23%; width:20%; height:6%; background: #f0e8d8; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform: rotate(2deg); animation: bq1-papers 4s ease-in-out infinite alternate; }
.scn-bannister-questioned .door-frame { position:absolute; right:10%; bottom:20%; width:25%; height:55%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 0 0 2px #5a4a3a; }
.scn-bannister-questioned .key-in-door { position:absolute; right:15%; bottom:35%; width:4%; height:6%; background: #d0a060; border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform-origin: bottom center; animation: bq1-key 6s ease-in-out infinite; }
.scn-bannister-questioned .figure-standing { position:absolute; bottom:20%; left:40%; width:10%; height:45%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bq1-figure 5s ease-in-out infinite alternate; }
.scn-bannister-questioned .lamp-glow { position:absolute; top:15%; left:30%; width:15%; height:20%; background: radial-gradient(circle, #f0d890 0%, #f0d89040 60%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: bq1-glow 3s ease-in-out infinite alternate; }
@keyframes bq1-papers { 0% { transform: rotate(2deg) translateY(0); opacity:0.8; } 50% { transform: rotate(0deg) translateY(-2px); opacity:1; } 100% { transform: rotate(-1deg) translateY(0); opacity:0.8; } }
@keyframes bq1-key { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes bq1-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bq1-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }

.scn-bannister-denies-looking { background: linear-gradient(180deg, #d0c0a8 0%, #b0a080 40%, #908070 100%), radial-gradient(ellipse at 60% 30%, #f0e0c8 0%, transparent 65%); }
.scn-bannister-denies-looking .back-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e0d0b8 0%, #c8b8a0 100%); border-bottom: 2px solid #a89878; }
.scn-bannister-denies-looking .wood-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,0.3); }
.scn-bannister-denies-looking .study-table { position:absolute; bottom:20%; left:20%; width:35%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-bannister-denies-looking .door-frame { position:absolute; right:10%; bottom:20%; width:25%; height:55%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 0 0 2px #5a4a3a; }
.scn-bannister-denies-looking .tea-tray { position:absolute; bottom:20%; left:40%; width:8%; height:4%; background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: bd2-tray 8s ease-in-out infinite alternate; }
.scn-bannister-denies-looking .figure-exiting { position:absolute; bottom:20%; right:10%; width:10%; height:42%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd2-figure 6s ease-in-out infinite; }
.scn-bannister-denies-looking .lamp-glow { position:absolute; top:10%; left:50%; width:18%; height:22%; background: radial-gradient(circle, #f0d890 0%, #f0d89030 60%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: bd2-glow 4s ease-in-out infinite alternate; }
@keyframes bd2-tray { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bd2-figure { 0% { transform: translateX(0) rotate(0deg); opacity:0.9; } 50% { transform: translateX(8px) rotate(2deg); opacity:1; } 100% { transform: translateX(16px) rotate(0deg); opacity:0.9; } }
@keyframes bd2-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.95); } }

.scn-bannister-disturbed { background: linear-gradient(180deg, #c8b8a0 0%, #a89878 40%, #887868 100%), radial-gradient(ellipse at 50% 40%, #e8d8c0 0%, transparent 60%); }
.scn-bannister-disturbed .back-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d8c8b0 0%, #c0b0a0 100%); border-bottom: 2px solid #a09078; }
.scn-bannister-disturbed .wood-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,0.3); }
.scn-bannister-disturbed .study-chair { position:absolute; bottom:22%; left:30%; width:20%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-bannister-disturbed .figure-slumped { position:absolute; bottom:22%; left:32%; width:14%; height:40%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bdi3-slump 7s ease-in-out infinite alternate; }
.scn-bannister-disturbed .window-light { position:absolute; top:5%; left:55%; width:20%; height:40%; background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0.04) 100%); border-radius: 2px; filter: blur(6px); animation: bdi3-window 9s ease-in-out infinite alternate; }
.scn-bannister-disturbed .lamp-glow { position:absolute; top:12%; left:20%; width:16%; height:20%; background: radial-gradient(circle, #f0d890 0%, #f0d89030 60%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: bdi3-glow 3.5s ease-in-out infinite alternate; }
@keyframes bdi3-slump { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(4deg) translateX(-4px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes bdi3-window { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.02); } 100% { opacity:0.4; transform: scaleX(0.98); } }
@keyframes bdi3-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.08); } 100% { opacity:0.6; transform: scale(0.92); } }

.scn-bannister-unaware { background: linear-gradient(180deg, #c8b8a8 0%, #a89888 40%, #887868 100%), radial-gradient(ellipse at 55% 35%, #f0e0c8 0%, transparent 60%); }
.scn-bannister-unaware .back-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d8c8b8 0%, #c0b0a8 100%); border-bottom: 2px solid #a09878; }
.scn-bannister-unaware .wood-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,0.3); }
.scn-bannister-unaware .door-frame { position:absolute; left:10%; bottom:20%; width:20%; height:55%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 0 0 2px #5a4a3a; }
.scn-bannister-unaware .figure-distressed { position:absolute; bottom:20%; left:35%; width:12%; height:44%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bu4-figure 5s ease-in-out infinite; }
.scn-bannister-unaware .mirror-frame { position:absolute; top:8%; right:18%; width:18%; height:34%; background: linear-gradient(180deg, #b0a098 0%, #908078 100%); border-radius: 4px; border: 4px solid #6a5a4a; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: bu4-mirror 10s ease-in-out infinite alternate; }
.scn-bannister-unaware .lamp-glow { position:absolute; top:10%; left:45%; width:20%; height:24%; background: radial-gradient(circle, #f0d890 0%, #f0d89030 60%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: bu4-glow 4.2s ease-in-out infinite alternate; }
@keyframes bu4-figure { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bu4-mirror { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.85; transform: scaleY(0.98); } }
@keyframes bu4-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.06); } 100% { opacity:0.6; transform: scale(0.94); } }

.scn-window-open { background: linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e2e 100%), radial-gradient(ellipse at 60% 30%, #3a3a4e 0%, transparent 60%); }
.scn-window-open .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-window-open .curtain { position:absolute; top:10%; width:25%; height:80%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); box-shadow: inset -4px 0 8px rgba(0,0,0,0.6); }
.scn-window-open .curtain-l { left:30%; border-radius: 0 40% 80% 0 / 0 20% 40% 0; transform-origin: right center; animation: a-wi-curtain-l 6s ease-in-out infinite alternate; }
.scn-window-open .curtain-r { right:30%; border-radius: 40% 0 0 80% / 20% 0 0 40%; transform-origin: left center; animation: a-wi-curtain-r 6s ease-in-out infinite alternate; }
.scn-window-open .window-frame { position:absolute; top:15%; left:35%; width:30%; height:70%; border: 4px solid #4a3a2a; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-window-open .window-pane { position:absolute; top:20%; left:38%; width:24%; height:60%; background: linear-gradient(180deg, rgba(80,90,120,0.3) 0%, rgba(40,50,70,0.1) 100%); animation: a-wi-pane 4s ease-in-out infinite; }
.scn-window-open .figure-intruder { position:absolute; bottom:10%; right:20%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: a-wi-intruder 8s ease-in-out infinite; }
.scn-window-open .shadow-fall { position:absolute; bottom:0; width:100%; height:50%; background: linear-gradient(0deg, rgba(0,0,0,0.8) 0%, transparent 100%); pointer-events:none; }
@keyframes a-wi-curtain-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(-8deg) translateX(-5px); } 100% { transform: rotate(0deg); } }
@keyframes a-wi-curtain-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg) translateX(5px); } 100% { transform: rotate(0deg); } }
@keyframes a-wi-pane { 0%,100% { opacity:0.4; } 50% { opacity:0.7; box-shadow: 0 0 20px rgba(150,180,220,0.3); } }
@keyframes a-wi-intruder { 0% { transform: scaleX(-1) translatex(0); } 50% { transform: scaleX(-1) translatex(-10px) rotate(3deg); } 100% { transform: scaleX(-1) translatex(0); } }

.scn-lady-struck { background: linear-gradient(180deg, #1c1c2e 0%, #2a2a3e 40%, #1c1c2e 100%), radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 70%); }
.scn-lady-struck .floor { position:absolute; bottom:0; width:100%; height:30%; background: linear-gradient(0deg, #2a1a1a 0%, #1a1a2a 100%); }
.scn-lady-struck .candle { position:absolute; top:40%; left:15%; width:4px; height:12px; background: #4a3a3a; border-radius: 2px; }
.scn-lady-struck .glow { position:absolute; top:35%; left:12%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,160,100,0.3) 0%, transparent 70%); animation: a-ls-glow 4s ease-in-out infinite alternate; }
.scn-lady-struck .figure-woman { position:absolute; bottom:15%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-30deg); animation: a-ls-fall 6s ease-in-out infinite; }
.scn-lady-struck .figure-attacker { position:absolute; bottom:25%; right:25%; width:35px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: a-ls-attacker 10s ease-in-out infinite; }
.scn-lady-struck .rope { position:absolute; top:20%; left:45%; width:4px; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform-origin: top center; animation: a-ls-rope 3s ease-in-out infinite; }
.scn-lady-struck .shadow-pool { position:absolute; bottom:10%; left:30%; width:120px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); }
@keyframes a-ls-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes a-ls-fall { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-5px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes a-ls-attacker { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-10px) rotate(5deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-10px) rotate(-5deg); } 100% { transform: translateY(0); } }
@keyframes a-ls-rope { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(0deg); } }

.scn-husband-attacks { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2e 100%), radial-gradient(ellipse at 50% 50%, #3a3a4e 0%, transparent 60%); }
.scn-husband-attacks .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-husband-attacks .figure-husband { position:absolute; bottom:30%; left:25%; width:35px; height:80px; background: linear-gradient(180deg, #1c1c1c 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: a-ha-husband 6s ease-in-out infinite; }
.scn-husband-attacks .cudgel { position:absolute; bottom:50%; left:30%; width:20px; height:4px; background: #4a3a2a; transform-origin: bottom center; transform: rotate(-30deg); animation: a-ha-cudgel 4s ease-in-out infinite; }
.scn-husband-attacks .figure-burglar { position:absolute; bottom:25%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: a-ha-burglar 8s ease-in-out infinite; }
.scn-husband-attacks .poker { position:absolute; bottom:35%; right:28%; width:18px; height:4px; background: #5a4a3a; transform-origin: bottom center; transform: rotate(20deg); animation: a-ha-poker 4s ease-in-out infinite alternate; }
.scn-husband-attacks .shadow-struggle { position:absolute; bottom:15%; left:20%; width:150px; height:60px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%); animation: a-ha-shadow 3s ease-in-out infinite alternate; }
@keyframes a-ha-husband { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-5px) rotate(-8deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-5px) rotate(8deg); } 100% { transform: translateY(0); } }
@keyframes a-ha-cudgel { 0% { transform: rotate(-30deg) translateY(0); } 25% { transform: rotate(-50deg) translateY(-2px); } 50% { transform: rotate(-30deg) translateY(0); } 75% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-30deg); } }
@keyframes a-ha-burglar { 0% { transform: translateX(0); } 25% { transform: translateX(-8px) rotate(-3deg); } 50% { transform: translateX(0); } 75% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0); } }
@keyframes a-ha-poker { 0% { transform: rotate(20deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(20deg); } }
@keyframes a-ha-shadow { 0% { transform: scaleX(1); opacity:0.5; } 100% { transform: scaleX(1.2); opacity:0.8; } }

.scn-burglars-drink { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 60%, #3a3a4e 0%, transparent 70%); }
.scn-burglars-drink .sideboard { position:absolute; bottom:25%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-burglars-drink .silver { position:absolute; bottom:34%; left:15%; width:40px; height:15px; background: linear-gradient(180deg, #7a7a8a 0%, #5a5a6a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: a-bd-shine 4s ease-in-out infinite alternate; }
.scn-burglars-drink .bottle { position:absolute; bottom:34%; right:30%; width:12px; height:30px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 4px 4px 2px 2px; }
.scn-burglars-drink .glass { position:absolute; bottom:32%; width:10px; height:18px; background: rgba(150,140,130,0.2); border: 1px solid #5a5a5a; border-radius: 2px 2px 6px 6px; }
.scn-burglars-drink .glass1 { left:35%; animation: a-bd-glass1 6s ease-in-out infinite; }
.scn-burglars-drink .glass2 { left:50%; animation: a-bd-glass2 6s ease-in-out infinite 2s; }
.scn-burglars-drink .figure-elderly { position:absolute; bottom:15%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-burglars-drink .figure-elderly::after { content:''; position:absolute; top:20%; left:30%; width:12px; height:8px; background: #3a3a3a; border-radius: 60% 60% 40% 40% / 80% 80% 20% 20%; } /* beard */
.scn-burglars-drink .figure-young { position:absolute; bottom:15%; right:20%; width:28px; height:65px; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-burglars-drink .lamp { position:absolute; top:20%; left:50%; width:20px; height:30px; background: radial-gradient(circle, #c8a060 0%, #8a6a3a 60%); border-radius: 4px 4px 10px 10px; box-shadow: 0 0 40px 10px rgba(200,160,100,0.4); animation: a-bd-lamp 5s ease-in-out infinite alternate; }
@keyframes a-bd-shine { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes a-bd-glass1 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes a-bd-glass2 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(0deg); } }
@keyframes a-bd-lamp { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); box-shadow: 0 0 60px 15px rgba(200,160,100,0.5); } 100% { opacity:0.7; transform: scale(1); } }

.scn-professor-appearance {
  background:
    radial-gradient(ellipse at 40% 20%, #4a3a2e 0%, #1a1410 70%, transparent 90%),
    linear-gradient(180deg, #2a221c 0%, #1a1410 50%, #0e0b08 100%);
  position: relative; overflow: hidden;
}
.scn-professor-appearance .room-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, #3a2e24 0%, transparent 60%);
  animation: prf1-ambient 20s ease-in-out infinite alternate;
}
.scn-professor-appearance .bookshelf {
  position: absolute; top: 10%; left: 5%; width: 15%; height: 60%;
  background: linear-gradient(180deg, #3a2e24 0%, #241c14 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateY(5deg);
  animation: prf1-shelf 30s ease-in-out infinite alternate;
}
.scn-professor-appearance .prof-head {
  position: absolute; bottom: 25%; left: 45%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #2a1e14 0%, #140e08 100%);
  border-radius: 40% 50% 20% 30% / 50% 60% 30% 40%;
  transform: rotate(-5deg);
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5);
}
.scn-professor-appearance .prof-hat {
  position: absolute; bottom: 70%; left: 42%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0b08 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(-8deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: prf1-hat 8s ease-in-out infinite;
}
.scn-professor-appearance .glow-cigarette {
  position: absolute; bottom: 30%; left: 52%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffc040 0%, #b06020 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #b06020, 0 0 24px 8px rgba(176,96,32,0.5);
  animation: prf1-glow 2s ease-in-out infinite alternate;
}
.scn-professor-appearance .eyes-stare {
  position: absolute; bottom: 43%; left: 48%; width: 8px; height: 4px;
  background: radial-gradient(circle, #f0e8d0 0%, #b8a880 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,232,208,0.3);
  animation: prf1-eyes 4s ease-in-out infinite alternate;
}

@keyframes prf1-ambient { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes prf1-shelf   { 0% { transform: perspective(300px) rotateY(5deg) translateX(0); } 50% { transform: perspective(300px) rotateY(2deg) translateX(-2px); } 100% { transform: perspective(300px) rotateY(8deg) translateX(1px); } }
@keyframes prf1-hat     { 0%,100% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } }
@keyframes prf1-glow    { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(0.9); } }
@keyframes prf1-eyes    { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.3); } 100% { opacity: 0.4; transform: scaleX(0.9); } }

.scn-professor-offers-cigarettes {
  background:
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, #1c1410 70%, transparent 90%),
    linear-gradient(180deg, #2a2218 0%, #140e0a 100%);
  position: relative; overflow: hidden;
}
.scn-professor-offers-cigarettes .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.6);
  animation: prf2-table 25s ease-in-out infinite alternate;
}
.scn-professor-offers-cigarettes .hand-case {
  position: absolute; bottom: 22%; left: 45%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform: rotate(15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-professor-offers-cigarettes .cigarette-pack {
  position: absolute; bottom: 25%; left: 48%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 4px;
  transform: rotate(20deg);
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
}
.scn-professor-offers-cigarettes .warm-glow {
  position: absolute; bottom: 30%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffc060 0%, #b06030 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #b06030, 0 0 40px 16px rgba(176,96,48,0.3);
  animation: prf2-glow 3s ease-in-out infinite alternate;
}
.scn-professor-offers-cigarettes .cigarette-tip {
  position: absolute; bottom: 27%; left: 51%; width: 2px; height: 6px;
  background: linear-gradient(180deg, #ffd080 0%, #b06020 100%);
  border-radius: 50%;
  transform: rotate(20deg);
  box-shadow: 0 0 4px #ffd080;
  animation: prf2-tip 1s ease-in-out infinite alternate;
}
.scn-professor-offers-cigarettes .smoke-wisp {
  position: absolute; bottom: 35%; left: 52%; width: 20px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,160,140,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: prf2-smoke 4s ease-in-out infinite;
}

@keyframes prf2-table  { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes prf2-glow   { 0% { opacity: 0.6; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes prf2-tip    { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes prf2-smoke  { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-20px) translateX(10px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(0) translateX(0) scale(1); opacity: 0.5; } }

.scn-holmes-lights-cigarette {
  background:
    radial-gradient(ellipse at 60% 40%, #3a2e22 0%, #1a1410 70%, transparent 90%),
    linear-gradient(180deg, #0e0b08 0%, #1a1410 50%, #2a2218 100%);
  position: relative; overflow: hidden;
}
.scn-holmes-lights-cigarette .chair-back {
  position: absolute; top: 10%; right: 5%; width: 20%; height: 80%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a0e06 100%);
  border-radius: 30% 10% 10% 30%;
  transform: perspective(200px) rotateY(-10deg);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-holmes-lights-cigarette .holmes-profile {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0b08 100%);
  border-radius: 30% 40% 10% 20% / 40% 50% 20% 30%;
  transform: rotate(-5deg);
  box-shadow: inset 0 -10px 14px rgba(0,0,0,0.6);
}
.scn-holmes-lights-cigarette .match-flame {
  position: absolute; bottom: 30%; left: 42%; width: 6px; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #b06020 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b06020, 0 0 40px 12px rgba(176,96,32,0.4);
  animation: prf3-flame 0.3s ease-in-out infinite alternate;
}
.scn-holmes-lights-cigarette .cigarette-lit {
  position: absolute; bottom: 27%; left: 44%; width: 3px; height: 12px;
  background: linear-gradient(180deg, #d0a070 0%, #8a6040 100%);
  border-radius: 30%;
  transform: rotate(10deg);
}
.scn-holmes-lights-cigarette .hand-match {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0804 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-holmes-lights-cigarette .smoke-wisps {
  position: absolute; bottom: 35%; left: 46%; width: 30px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,160,140,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: prf3-smoke 5s ease-in-out infinite;
}

@keyframes prf3-flame { 0% { transform: scale(1) rotate(-2deg); opacity: 0.9; } 50% { transform: scale(1.2) rotate(2deg); opacity: 1; } 100% { transform: scale(0.9) rotate(-1deg); opacity: 0.8; } }
@keyframes prf3-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-30px) translateX(15px) scale(2); opacity: 0.1; } 100% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4; } }

.scn-professor-expresses-hope {
  background:
    radial-gradient(ellipse at 40% 50%, #3a2a20 0%, #1a1410 70%, transparent 90%),
    linear-gradient(180deg, #0e0b08 0%, #1a1410 40%, #2a2018 100%);
  position: relative; overflow: hidden;
}
.scn-professor-expresses-hope .curtain-left {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #1a1410 0%, transparent 100%);
  animation: prf4-curtain 10s ease-in-out infinite alternate;
}
.scn-professor-expresses-hope .curtain-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(270deg, #1a1410 0%, transparent 100%);
  animation: prf4-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-professor-expresses-hope .professor-face {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 65px;
  background: linear-gradient(180deg, #2a1e14 0%, #140e08 100%);
  border-radius: 30% 40% 20% 30% / 40% 50% 30% 40%;
  transform: rotate(2deg);
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.5);
  animation: prf4-face 6s ease-in-out infinite;
}
.scn-professor-expresses-hope .clasped-hands {
  position: absolute; bottom: 8%; left: 45%; width: 30px; height: 30px;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0804 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 60% 60%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: prf4-hands 3s ease-in-out infinite alternate;
}
.scn-professor-expresses-hope .tense-light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(180,160,120,0.05) 0%, transparent 100%);
  transform: skewX(-20deg);
  animation: prf4-light 8s ease-in-out infinite alternate;
}

@keyframes prf4-curtain { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes prf4-face    { 0%,100% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } }
@keyframes prf4-hands   { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(0deg) scale(1.1); } 100% { transform: rotate(-8deg) scale(0.95); } }
@keyframes prf4-light   { 0% { opacity: 0.3; transform: skewX(-20deg) translateX(0); } 50% { opacity: 0.6; transform: skewX(-15deg) translateX(-5px); } 100% { opacity: 0.2; transform: skewX(-25deg) translateX(5px); } }

/* professor-scoffs - tense, bright interior */
.scn-professor-scoffs {
  background: linear-gradient(135deg, #d8c8a8 0%, #b8a080 40%, #907060 100%), radial-gradient(ellipse at 80% 20%, #e8d8b8 0%, transparent 60%);
}
.scn-professor-scoffs .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  animation: ps-room 10s ease-in-out infinite alternate;
}
.scn-professor-scoffs .desk {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: ps-desk 8s ease-in-out infinite;
}
.scn-professor-scoffs .lamp {
  position: absolute; bottom: 35%; left: 30%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #c0a060 0%, #806040 100%);
  border-radius: 4px 4px 8px 8px; 
  box-shadow: 0 0 20px 8px #f0d090, 0 0 40px 16px rgba(240,208,144,0.5);
  animation: ps-lamp 4s ease-in-out infinite alternate;
}
.scn-professor-scoffs .professor {
  position: absolute; bottom: 24%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-figure 3s ease-in-out infinite;
}
.scn-professor-scoffs .holmes {
  position: absolute; bottom: 24%; right: 25%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a2018 0%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-figure 3.5s ease-in-out infinite reverse;
}
.scn-professor-scoffs .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: ps-shadow 6s ease-in-out infinite alternate;
}
@keyframes ps-room { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ps-desk { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) rotate(0.5deg) } }
@keyframes ps-lamp { 0% { box-shadow: 0 0 20px 6px #f0d080; } 50% { box-shadow: 0 0 35px 12px #ffd8a0; } 100% { box-shadow: 0 0 25px 8px #f0c880; } }
@keyframes ps-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ps-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.1); } 100% { opacity: 0.2; transform: scaleX(0.95); } }

/* lady-loses-glasses - calm, bright interior */
.scn-lady-loses-glasses {
  background: linear-gradient(90deg, #b8a898 0%, #d0c0b0 30%, #c8b8a8 70%, #a89888 100%);
}
.scn-lady-loses-glasses .corridor-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 50%, #908070 100%);
}
.scn-lady-loses-glasses .wall-left {
  position: absolute; top: 0; left: 0; width: 32%; height: 100%;
  background: repeating-linear-gradient(0deg, #b8a898 0px, #b8a898 6px, #a09080 6px, #a09080 12px);
  opacity: 0.3; animation: llg-panel 20s linear infinite;
}
.scn-lady-loses-glasses .wall-right {
  position: absolute; top: 0; right: 0; width: 32%; height: 100%;
  background: repeating-linear-gradient(0deg, #b8a898 0px, #b8a898 6px, #a09080 6px, #a09080 12px);
  opacity: 0.3; animation: llg-panel 25s linear infinite reverse;
}
.scn-lady-loses-glasses .door {
  position: absolute; bottom: 10%; right: 28%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  transform: perspective(600px) rotateY(10deg);
  animation: llg-door 12s ease-in-out infinite alternate;
}
.scn-lady-loses-glasses .lady {
  position: absolute; bottom: 12%; left: 40%; width: 16px; height: 45px;
  background: linear-gradient(135deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: llg-lady 8s ease-in-out infinite;
}
.scn-lady-loses-glasses .glasses {
  position: absolute; bottom: 30%; left: 38%; width: 14px; height: 6px;
  background: radial-gradient(ellipse, #c0c0c0 0%, #808080 100%);
  border-radius: 50%; filter: blur(1px);
  animation: llg-glasses 8s ease-in-out infinite;
}
@keyframes llg-panel { 0% { background-position: 0 0; } 100% { background-position: 0 30px; } }
@keyframes llg-door { 0% { transform: perspective(600px) rotateY(8deg); } 50% { transform: perspective(600px) rotateY(12deg); } 100% { transform: perspective(600px) rotateY(8deg); } }
@keyframes llg-lady { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes llg-glasses { 0%,100% { opacity: 0.4; transform: translateX(0) rotate(5deg); } 50% { opacity: 0.1; transform: translateX(4px) rotate(-5deg); } }

/* lady-goes-to-professor - calm, bright interior */
.scn-lady-goes-to-professor {
  background: linear-gradient(180deg, #d0c0b0 0%, #b8a898 60%, #a09080 100%), radial-gradient(ellipse at 70% 80%, #e0d0c0 0%, transparent 60%);
}
.scn-lady-goes-to-professor .room-interior {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #c8b8a8 0%, #d8c8b8 50%, #c0b0a0 100%);
}
.scn-lady-goes-to-professor .doorway {
  position: absolute; bottom: 10%; right: 15%; width: 40px; height: 110px;
  background: #6a5a4a; border-radius: 0 0 4px 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateY(15deg);
  animation: lgp-door 15s ease-in-out infinite alternate;
}
.scn-lady-goes-to-professor .professor-chair {
  position: absolute; bottom: 20%; left: 20%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: lgp-sit 6s ease-in-out infinite;
}
.scn-lady-goes-to-professor .lady-figure {
  position: absolute; bottom: 12%; right: 30%; width: 16px; height: 40px;
  background: linear-gradient(135deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lgp-enter 10s ease-in-out infinite;
}
.scn-lady-goes-to-professor .window-light {
  position: absolute; top: 20%; left: 10%; width: 50px; height: 70px;
  background: radial-gradient(ellipse, #f0e8d8 0%, #e0d0b8 60%, transparent 100%);
  filter: blur(4px); opacity: 0.5;
  animation: lgp-window 8s ease-in-out infinite alternate;
}
@keyframes lgp-door { 0% { transform: perspective(400px) rotateY(12deg); } 50% { transform: perspective(400px) rotateY(18deg); } 100% { transform: perspective(400px) rotateY(14deg); } }
@keyframes lgp-sit { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes lgp-enter { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-8px) translateY(-1px) rotate(3deg); } 50% { transform: translateX(-16px) translateY(0) rotate(0deg); } 75% { transform: translateX(-8px) translateY(1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes lgp-window { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* holmes-contradicts - calm, bright interior */
.scn-holmes-contradicts {
  background: linear-gradient(180deg, #c8b8a8 0%, #b0a090 40%, #a09080 100%), radial-gradient(ellipse at 50% 70%, #d8c8b8 0%, transparent 70%);
}
.scn-holmes-contradicts .study-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d0c0b0 0%, #b8a898 100%);
}
.scn-holmes-contradicts .bed {
  position: absolute; bottom: 12%; left: 10%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: hc-bed 12s ease-in-out infinite;
}
.scn-holmes-contradicts .professor-seated {
  position: absolute; bottom: 20%; left: 20%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-figure 7s ease-in-out infinite;
}
.scn-holmes-contradicts .holmes-standing {
  position: absolute; bottom: 18%; right: 25%; width: 18px; height: 45px;
  background: linear-gradient(135deg, #2a2018 0%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-figure 8s ease-in-out infinite reverse;
}
.scn-holmes-contradicts .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 25%; height: 40%;
  background: repeating-linear-gradient(0deg, #6a5a4a 0px, #6a5a4a 8px, #5a4a3a 8px, #5a4a3a 16px);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: hc-shelf 10s ease-in-out infinite alternate;
}
.scn-holmes-contradicts .lamp-glow {
  position: absolute; bottom: 35%; left: 35%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0d090 0%, #d0b070 50%, transparent 100%);
  box-shadow: 0 0 30px 12px #f0d090;
  animation: hc-lamp 4s ease-in-out infinite alternate;
}
@keyframes hc-bed { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01) translateY(-2px); } }
@keyframes hc-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hc-shelf { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes hc-lamp { 0% { box-shadow: 0 0 20px 8px #f0d080; } 50% { box-shadow: 0 0 40px 16px #ffd8a0; } 100% { box-shadow: 0 0 25px 10px #e8c070; } }

.scn-the-arrival {
  background: linear-gradient(180deg, #0b0b1a 0%, #18182e 40%, #1f1f3a 100%), radial-gradient(ellipse at 50% 0%, #1a1a3e 0%, transparent 70%);
}
.scn-the-arrival .sky-dark {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0e0e2a 0%, transparent 100%);
  animation: s1-sky 10s ease-in-out infinite alternate;
}
.scn-the-arrival .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-the-arrival .gate {
  position: absolute; bottom: 30%; left: 50%; width: 90px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a2a2a 0%, #1a1a1a 50%, #2a2a2a 100%);
  border-left: 3px solid #3a3a3a; border-right: 3px solid #3a3a3a;
  border-radius: 2px 2px 0 0;
  animation: s1-gate 12s ease-in-out infinite;
}
.scn-the-arrival .figure-dark {
  position: absolute; bottom: 32%; left: 48%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure 4s ease-in-out infinite;
}
.scn-the-arrival .lantern-gate {
  position: absolute; bottom: 35%; left: 52%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffcc80 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,200,128,0.6), 0 0 40px 12px rgba(255,200,128,0.2);
  animation: s1-lantern 3s ease-in-out infinite alternate;
}
.scn-the-arrival .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(200,220,255,0.25) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: s1-drift-a 40s linear infinite;
}
.scn-the-arrival .cloud-b {
  position: absolute; top: 20%; right: 5%; width: 60px; height: 15px;
  background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: s1-drift-b 50s linear infinite reverse;
}
@keyframes s1-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes s1-gate { 0%, 100% { transform: translateX(-50%); } 50% { transform: translateX(-50%) scale(1.01); } }
@keyframes s1-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes s1-lantern { 0% { box-shadow: 0 0 15px 4px rgba(255,200,128,0.5); opacity: 0.7; } 50% { box-shadow: 0 0 30px 10px rgba(255,200,128,0.8); opacity: 1; } 100% { box-shadow: 0 0 20px 6px rgba(255,200,128,0.4); opacity: 0.8; } }
@keyframes s1-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes s1-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-catching-the-intruder {
  background: linear-gradient(180deg, #0a0a1a 0%, #141428 50%, #1e1e3a 100%), radial-gradient(circle at 30% 50%, #1a1a3e 0%, transparent 60%);
}
.scn-catching-the-intruder .wall-left {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(90deg, #12122a 0%, #1a1a34 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}
.scn-catching-the-intruder .wall-right {
  position: absolute; inset: 0 0 0 50%;
  background: linear-gradient(270deg, #0e0e24 0%, #1a1a34 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}
.scn-catching-the-intruder .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
}
.scn-catching-the-intruder .intruder-figure {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #111122 0%, #0a0a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-figure 5s ease-in-out infinite;
}
.scn-catching-the-intruder .doorway {
  position: absolute; bottom: 10%; right: 15%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
}
.scn-catching-the-intruder .moon-beam {
  position: absolute; top: 0; left: 60%; width: 120px; height: 100%;
  background: linear-gradient(180deg, rgba(180,200,255,0.08) 0%, transparent 90%);
  clip-path: polygon(40% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: s2-beam 8s ease-in-out infinite alternate;
}
.scn-catching-the-intruder .shadow-pool {
  position: absolute; bottom: 25%; left: 25%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: s2-shadow 4s ease-in-out infinite;
}
@keyframes s2-figure { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1); } }
@keyframes s2-beam { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes s2-shadow { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(0.9); } }

.scn-interrogation-begins {
  background: linear-gradient(180deg, #12121e 0%, #1c1c2e 40%, #262642 100%), radial-gradient(circle at 50% 40%, #2a2a4a 0%, transparent 60%);
}
.scn-interrogation-begins .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 40%, rgba(0,0,0,0.4) 100%);
}
.scn-interrogation-begins .table {
  position: absolute; bottom: 20%; left: 30%; width: 160px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.8);
  animation: s3-table 6s ease-in-out infinite;
}
.scn-interrogation-begins .detective-hopkins {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-hopkins 4s ease-in-out infinite;
}
.scn-interrogation-begins .intruder-seated {
  position: absolute; bottom: 20%; right: 35%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #15152a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-intruder 4s ease-in-out infinite reverse;
}
.scn-interrogation-begins .lamp-glow {
  position: absolute; bottom: 50%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.5), 0 0 60px 20px rgba(255,208,128,0.2);
  animation: s3-lamp 3s ease-in-out infinite alternate;
}
.scn-interrogation-begins .chair-shadow {
  position: absolute; bottom: 18%; right: 30%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
}
@keyframes s3-table { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes s3-hopkins { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes s3-intruder { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes s3-lamp { 0% { box-shadow: 0 0 20px 6px rgba(255,208,128,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 40px 14px rgba(255,208,128,0.7); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(255,208,128,0.3); opacity: 0.9; } }

.scn-neligan-confesses {
  background: linear-gradient(180deg, #10101e 0%, #1a1a30 50%, #24243e 100%), radial-gradient(circle at 30% 60%, #2a2a4a 0%, transparent 60%);
}
.scn-neligan-confesses .desk {
  position: absolute; bottom: 15%; left: 20%; width: 200px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 6px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.8);
  animation: s4-desk 8s ease-in-out infinite;
}
.scn-neligan-confesses .figure-profile {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #15152a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-profile 5s ease-in-out infinite;
}
.scn-neligan-confesses .lamp-desk {
  position: absolute; bottom: 40%; left: 28%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.5), 0 0 40px 12px rgba(255,208,128,0.2);
  animation: s4-lamp 3s ease-in-out infinite alternate;
}
.scn-neligan-confesses .paper-scroll {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: s4-paper 6s ease-in-out infinite;
}
.scn-neligan-confesses .shadow-desk {
  position: absolute; bottom: 10%; left: 15%; width: 220px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
}
.scn-neligan-confesses .wall-texture {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(255,255,255,0.02) 30px, rgba(255,255,255,0.02) 31px);
  opacity: 0.5;
}
.scn-neligan-confesses .inkwell {
  position: absolute; bottom: 28%; left: 25%; width: 12px; height: 14px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.1);
  animation: s4-ink 10s ease-in-out infinite;
}
@keyframes s4-desk { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes s4-profile { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s4-lamp { 0% { box-shadow: 0 0 15px 4px rgba(255,208,128,0.4); opacity: 0.7; } 50% { box-shadow: 0 0 35px 10px rgba(255,208,128,0.8); opacity: 1; } 100% { box-shadow: 0 0 20px 6px rgba(255,208,128,0.3); opacity: 0.8; } }
@keyframes s4-paper { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes s4-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-telegram-key { background: linear-gradient(135deg, #2b1f1a 0%, #3d2c24 40%, #1e1510 100%); }
.scn-telegram-key .desk-top { position:absolute; bottom:8%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #6a4d3a 0%, #4a3325 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4); }
.scn-telegram-key .desk-leg { position:absolute; bottom:2%; left:20%; width:3%; height:6%; background: linear-gradient(180deg, #4a3325 0%, #2a1a10 100%); border-radius: 2px; }
.scn-telegram-key .lamp-base { position:absolute; bottom:18%; left:25%; width:5%; height:4%; background: radial-gradient(circle, #c8a060 0%, #8a6a3a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-telegram-key .lamp-glow { position:absolute; bottom:24%; left:23%; width:9%; height:16%; background: radial-gradient(ellipse at 50% 100%, #f0d090 0%, transparent 70%); opacity:.6; animation: tk-glow 6s ease-in-out infinite alternate; }
.scn-telegram-key .telegram-form { position:absolute; bottom:14%; left:38%; right:38%; height:6%; background: linear-gradient(180deg, #f5f0e0 0%, #d8cca0 100%); border-radius: 1px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: tk-lift 5s ease-in-out infinite; }
.scn-telegram-key .telegram-text { position:absolute; bottom:16%; left:42%; right:42%; height:2%; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 1px; opacity:.7; }
.scn-telegram-key .hand-shadow { position:absolute; bottom:10%; left:32%; width:12%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 70%); border-radius: 40% 60% 50% 50% / 60% 50% 50% 40%; animation: tk-reach 7s ease-in-out infinite; }
@keyframes tk-glow { 0% { opacity:.4; transform: scaleY(1); } 50% { opacity:.7; transform: scaleY(1.1); } 100% { opacity:.5; transform: scaleY(.95); } }
@keyframes tk-lift { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(.5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tk-reach { 0% { transform: translateX(0) translateY(0) scale(1); } 33% { transform: translateX(4px) translateY(-2px) scale(1.05); } 66% { transform: translateX(-2px) translateY(1px) scale(.98); } 100% { transform: translateX(0) translateY(0) scale(1); } }

.scn-dr-armstrong-house { background: linear-gradient(180deg, #1e2230 0%, #2a3040 30%, #1a1c28 100%); }
.scn-dr-armstrong-house .wall-panel { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a2e3a 0%, #3a3e4a 50%, #2a2e3a 100%); border-bottom: 2px solid #4a4e5a; }
.scn-dr-armstrong-house .door-frame { position:absolute; top:5%; left:10%; width:20%; height:65%; border: 3px solid #4a4e5a; border-radius: 4px 4px 0 0; background: transparent; }
.scn-dr-armstrong-house .door { position:absolute; top:5%; left:10%; width:18%; height:64%; background: linear-gradient(180deg, #3a3e4a 0%, #2a2e3a 100%); border-radius: 2px 2px 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); animation: dr-door 12s ease-in-out infinite alternate; }
.scn-dr-armstrong-house .table-slab { position:absolute; bottom:20%; left:30%; right:20%; height:8%; background: linear-gradient(180deg, #5a4e3a 0%, #3a2e1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-dr-armstrong-house .table-leg { position:absolute; bottom:12%; left:35%; width:2%; height:8%; background: linear-gradient(180deg, #3a2e1a 0%, #1a120a 100%); border-radius: 2px; }
.scn-dr-armstrong-house .lamp-shade { position:absolute; bottom:32%; left:45%; width:8%; height:6%; background: radial-gradient(ellipse at 50% 0, #6a8a5a 0%, #3a4a2a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 20px 4px rgba(100,140,80,.3); animation: dr-lamp 8s ease-in-out infinite alternate; }
.scn-dr-armstrong-house .shadow-figure { position:absolute; bottom:18%; left:55%; width:10%; height:16%; background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,.4) 0%, transparent 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dr-figure 9s ease-in-out infinite; }
.scn-dr-armstrong-house .clock-pendulum { position:absolute; top:8%; right:15%; width:2%; height:12%; background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius: 2px; transform-origin: top center; animation: dr-pendulum 2s ease-in-out infinite alternate; }
@keyframes dr-door { 0% { transform: scaleX(1); } 25% { transform: scaleX(.95); } 50% { transform: scaleX(1); } 75% { transform: scaleX(.98); } 100% { transform: scaleX(1); } }
@keyframes dr-lamp { 0% { opacity:.6; box-shadow: 0 0 15px 2px rgba(100,140,80,.2); } 50% { opacity:.9; box-shadow: 0 0 30px 8px rgba(100,140,80,.4); } 100% { opacity:.7; box-shadow: 0 0 20px 4px rgba(100,140,80,.25); } }
@keyframes dr-figure { 0% { transform: translateX(0) scale(1); opacity:.5; } 33% { transform: translateX(3px) scale(1.02); opacity:.6; } 66% { transform: translateX(-2px) scale(.98); opacity:.4; } 100% { transform: translateX(0) scale(1); opacity:.5; } }
@keyframes dr-pendulum { 0% { transform: rotate(-8deg); } 25% { transform: rotate(-4deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(5deg); } 100% { transform: rotate(8deg); } }

.scn-doctor-unfriendly { background: linear-gradient(135deg, #e8e0d0 0%, #d0c8b8 40%, #f0e8d8 100%); }
.scn-doctor-unfriendly .bright-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #f5efe0 0%, #e0d8c8 100%); }
.scn-doctor-unfriendly .window-bar { position:absolute; top:8%; left:5%; right:5%; height:2%; background: linear-gradient(90deg, #8a7a6a 0%, #b0a090 50%, #8a7a6a 100%); box-shadow: 0 4px 8px rgba(0,0,0,.1); }
.scn-doctor-unfriendly .desk-flat { position:absolute; bottom:20%; left:20%; right:20%; height:6%; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.scn-doctor-unfriendly .chair-back { position:absolute; bottom:28%; left:35%; width:6%; height:14%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 2px 0 6px rgba(0,0,0,.2); }
.scn-doctor-unfriendly .figure-torso { position:absolute; bottom:24%; left:32%; width:12%; height:18%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%; box-shadow: inset -2px 0 6px rgba(0,0,0,.2); animation: du-torso 4s ease-in-out infinite alternate; }
.scn-doctor-unfriendly .figure-head { position:absolute; bottom:40%; left:34%; width:8%; height:10%; background: radial-gradient(ellipse at 50% 40%, #c8b8a0 0%, #a89880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.15); animation: du-head 5s ease-in-out infinite; }
.scn-doctor-unfriendly .folder-stack { position:absolute; bottom:22%; left:45%; width:8%; height:4%; background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,.15); }
.scn-doctor-unfriendly .pen-holder { position:absolute; bottom:22%; left:42%; width:2%; height:6%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 2px; transform: rotate(10deg); animation: du-pen 6s ease-in-out infinite; }
@keyframes du-torso { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes du-head { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes du-pen { 0% { transform: rotate(8deg) translateX(0); } 33% { transform: rotate(12deg) translateX(2px); } 66% { transform: rotate(6deg) translateX(-1px); } 100% { transform: rotate(8deg) translateX(0); } }

.scn-criticism-of-prying { background: linear-gradient(135deg, #e8ddd0 0%, #d0c5b8 50%, #c0b5a8 100%); }
.scn-criticism-of-prying .room-back { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e8ded0 0%, #d0c4b0 100%); border-bottom: 2px solid #b8a898; }
.scn-criticism-of-prying .carpet-edge { position:absolute; bottom:5%; left:5%; right:5%; height:15%; background: linear-gradient(135deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%); border-radius: 40% 40% 0 0 / 80% 80% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.1); }
.scn-criticism-of-prying .sofa-arm { position:absolute; bottom:20%; left:8%; width:12%; height:20%; background: linear-gradient(135deg, #c8b8a0 0%, #a89880 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 2px 0 8px rgba(0,0,0,.15); }
.scn-criticism-of-prying .figure-one { position:absolute; bottom:24%; left:15%; width:10%; height:22%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset -2px 0 6px rgba(0,0,0,.2); animation: cp-one 5s ease-in-out infinite alternate; }
.scn-criticism-of-prying .figure-two { position:absolute; bottom:22%; right:12%; width:10%; height:24%; background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 2px 0 6px rgba(0,0,0,.2); animation: cp-two 6s ease-in-out infinite alternate; }
.scn-criticism-of-prying .table-round { position:absolute; bottom:18%; left:35%; right:35%; height:8%; background: radial-gradient(ellipse at 50% 50%, #c8b8a0 0%, #a89880 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.scn-criticism-of-prying .tea-cup { position:absolute; bottom:22%; left:45%; width:4%; height:5%; background: radial-gradient(ellipse at 50% 60%, #e8e0d0 0%, #c8b8a0 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.1); animation: cp-cup 7s ease-in-out infinite; }
.scn-criticism-of-prying .steam-wisp { position:absolute; bottom:28%; left:46%; width:2%; height:6%; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,.4) 0%, transparent 100%); filter: blur(2px); animation: cp-steam 4s ease-in-out infinite; }
@keyframes cp-one { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cp-two { 0% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(-3px) rotate(-1deg); } 66% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes cp-cup { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cp-steam { 0% { transform: translateY(0) scaleX(1); opacity:.3; } 50% { transform: translateY(-10px) scaleX(1.5); opacity:.1; } 100% { transform: translateY(-20px) scaleX(2); opacity:0; } }

.scn-book-collector-reveal { background: linear-gradient(180deg, #f5e6d3 0%, #e8d4b8 30%, #d4bfa0 60%, #c8a882 100%), radial-gradient(ellipse at 40% 50%, #fff5e6 0%, transparent 60%); }
.scn-book-collector-reveal .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d4b8 0%, #d4bfa0 100%); animation: bcr-wall 12s ease-in-out infinite alternate; }
.scn-book-collector-reveal .shelf-back { position:absolute; bottom:20%; left:5%; right:5%; height:8%; background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.2); }
.scn-book-collector-reveal .shelf-mid { position:absolute; bottom:38%; left:5%; right:5%; height:8%; background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.2); }
.scn-book-collector-reveal .books-left { position:absolute; bottom:22%; left:8%; width:12%; height:14%; background: linear-gradient(90deg, #a0522d 0%, #8b4513 20%, #6b3410 40%, #8b4513 60%, #a0522d 100%); border-radius:2px 6px 6px 2px; box-shadow: inset -2px 0 4px rgba(0,0,0,.3); transform:rotate(-2deg); animation: bcr-books 8s ease-in-out infinite; }
.scn-book-collector-reveal .books-right { position:absolute; bottom:22%; right:10%; width:15%; height:18%; background: linear-gradient(90deg, #6b3410 0%, #8b4513 20%, #a0522d 40%, #8b4513 60%, #6b3410 100%); border-radius:2px 6px 6px 2px; box-shadow: inset -2px 0 4px rgba(0,0,0,.3); transform:rotate(1deg); animation: bcr-books 8s ease-in-out infinite reverse; }
.scn-book-collector-reveal .collector-figure { position:absolute; bottom:20%; left:45%; width:14%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 -4px 12px rgba(0,0,0,.3); animation: bcr-figure 6s ease-in-out infinite; }
.scn-book-collector-reveal .collector-arm { position:absolute; bottom:30%; left:43%; width:8%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:top center; transform:rotate(-15deg); animation: bcr-arm 4s ease-in-out infinite alternate; }
.scn-book-collector-reveal .glow-spot { position:absolute; bottom:35%; left:45%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 40%, #fff5e6 0%, transparent 60%); opacity:.3; animation: bcr-glow 5s ease-in-out infinite alternate; }
@keyframes bcr-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bcr-books { 0% { transform:rotate(-2deg) scaleY(1) } 50% { transform:rotate(1deg) scaleY(1.02) } 100% { transform:rotate(-2deg) scaleY(1) } }
@keyframes bcr-figure { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-3px) rotate(1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes bcr-arm { 0% { transform:rotate(-15deg) } 100% { transform:rotate(-8deg) } }
@keyframes bcr-glow { 0% { opacity:.2; transform:scale(1) } 50% { opacity:.4; transform:scale(1.05) } 100% { opacity:.25; transform:scale(1) } }

.scn-book-collector-speech { background: linear-gradient(180deg, #f0e0c8 0%, #e0ccaa 40%, #c8b28a 80%, #b8a078 100%), radial-gradient(ellipse at 50% 70%, #fff5e0 0%, transparent 50%); }
.scn-book-collector-speech .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d4b8 0%, #d4bfa0 100%); animation: bcs-wall 10s ease-in-out infinite alternate; }
.scn-book-collector-speech .shelf-back { position:absolute; bottom:25%; left:5%; right:5%; height:6%; background: linear-gradient(180deg, #7a654a 0%, #5a4a35 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.15); }
.scn-book-collector-speech .shelf-fore { position:absolute; bottom:42%; left:5%; right:5%; height:6%; background: linear-gradient(180deg, #7a654a 0%, #5a4a35 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.15); }
.scn-book-collector-speech .books-spine { position:absolute; bottom:28%; left:10%; width:8%; height:13%; background: linear-gradient(90deg, #a0522d 0%, #8b4513 30%, #6b3410 70%, #8b4513 100%); border-radius:2px 4px 4px 2px; box-shadow: inset -2px 0 4px rgba(0,0,0,.3); transform:rotate(-1deg); animation: bcs-books 7s ease-in-out infinite; }
.scn-book-collector-speech .speaker-figure { position:absolute; bottom:20%; left:40%; width:15%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 -4px 12px rgba(0,0,0,.2); animation: bcs-figure 8s ease-in-out infinite; }
.scn-book-collector-speech .speaker-hand { position:absolute; bottom:32%; left:38%; width:7%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin:top center; transform:rotate(10deg); animation: bcs-hand 5s ease-in-out infinite alternate; }
.scn-book-collector-speech .warm-haze { position:absolute; bottom:15%; left:30%; width:40%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(255,235,200,.25) 0%, transparent 70%); animation: bcs-haze 6s ease-in-out infinite alternate; }
@keyframes bcs-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bcs-books { 0% { transform:rotate(-1deg) scaleY(1) } 50% { transform:rotate(2deg) scaleY(1.01) } 100% { transform:rotate(-1deg) scaleY(1) } }
@keyframes bcs-figure { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes bcs-hand { 0% { transform:rotate(10deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(10deg) } }
@keyframes bcs-haze { 0% { opacity:.15; transform:scale(1) } 50% { opacity:.3; transform:scale(1.03) } 100% { opacity:.2; transform:scale(1) } }

.scn-dialogue-in-study { background: linear-gradient(180deg, #f2e6d0 0%, #e4d4b4 35%, #d0be9a 70%, #c0aa80 100%), radial-gradient(ellipse at 60% 30%, #fff8e8 0%, transparent 50%); }
.scn-dialogue-in-study .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e6d4b4 0%, #d0be9a 100%); animation: dis-wall 14s ease-in-out infinite alternate; }
.scn-dialogue-in-study .study-shelf { position:absolute; bottom:35%; left:8%; right:8%; height:10%; background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%); border-radius:2px; box-shadow:0 6px 12px rgba(0,0,0,.2); }
.scn-dialogue-in-study .books-stacked { position:absolute; bottom:38%; left:12%; width:20%; height:30%; background: linear-gradient(90deg, #7a4a2a 0%, #5a3a1a 20%, #8b5a3a 40%, #5a3a1a 60%, #7a4a2a 100%); border-radius:3px 8px 8px 3px; box-shadow: inset -2px 0 6px rgba(0,0,0,.3); transform:rotate(2deg); animation: dis-stacked 9s ease-in-out infinite; }
.scn-dialogue-in-study .desk { position:absolute; bottom:10%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%); border-radius:4px 4px 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.2); }
.scn-dialogue-in-study .study-figure { position:absolute; bottom:15%; left:50%; width:13%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); box-shadow:0 -4px 12px rgba(0,0,0,.3); animation: dis-figure 7s ease-in-out infinite; }
.scn-dialogue-in-study .study-shadow { position:absolute; bottom:10%; left:45%; width:20%; height:8%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.15) 0%, transparent 70%); animation: dis-shadow 7s ease-in-out infinite; }
.scn-dialogue-in-study .lamp-glow { position:absolute; bottom:40%; left:30%; width:25%; height:35%; background: radial-gradient(ellipse at 50% 30%, rgba(255,240,180,.4) 0%, transparent 60%); animation: dis-lamp 4s ease-in-out infinite alternate; }
@keyframes dis-wall { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dis-stacked { 0% { transform:rotate(2deg) scaleY(1) } 50% { transform:rotate(-1deg) scaleY(1.02) } 100% { transform:rotate(2deg) scaleY(1) } }
@keyframes dis-figure { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes dis-shadow { 0% { opacity:.5; transform:scale(1) } 50% { opacity:.7; transform:scale(1.05) } 100% { opacity:.5; transform:scale(1) } }
@keyframes dis-lamp { 0% { opacity:.3; transform:scale(1) } 100% { opacity:.5; transform:scale(1.08) } }

.scn-disguised-holmes-ploy { background: linear-gradient(180deg, #f0e0c8 0%, #e0ccaa 30%, #d0b890 60%, #c0a878 100%), radial-gradient(ellipse at 55% 45%, #fff8e0 0%, transparent 50%); }
.scn-disguised-holmes-ploy .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e4d0aa 0%, #d0b890 100%); animation: dhp-wall 11s ease-in-out infinite alternate; }
.scn-disguised-holmes-ploy .cabinet { position:absolute; bottom:15%; left:8%; right:8%; height:55%; background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%); border-radius:6px 6px 2px 2px; box-shadow:0 8px 16px rgba(0,0,0,.25); }
.scn-disguised-holmes-ploy .books-offered { position:absolute; bottom:40%; left:25%; width:12%; height:25%; background: linear-gradient(90deg, #7a4a2a 0%, #5a3a1a 30%, #8b5a3a 60%, #5a3a1a 100%); border-radius:2px 6px 6px 2px; box-shadow: inset -2px 0 4px rgba(0,0,0,.3); transform:rotate(3deg); animation: dhp-books 6s ease-in-out infinite; }
.scn-disguised-holmes-ploy .holmes-figure { position:absolute; bottom:15%; left:45%; width:15%; height:50%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 -4px 12px rgba(0,0,0,.3); animation: dhp-figure 5s ease-in-out infinite; }
.scn-disguised-holmes-ploy .holmes-hand { position:absolute; bottom:30%; left:44%; width:7%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin:top center; transform:rotate(-10deg); animation: dhp-hand 3s ease-in-out infinite alternate; }
.scn-disguised-holmes-ploy .holmes-shadow { position:absolute; bottom:10%; left:40%; width:25%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.2) 0%, transparent 70%); animation: dhp-shadow 5s ease-in-out infinite; }
.scn-disguised-holmes-ploy .ploy-glow { position:absolute; bottom:25%; left:25%; width:30%; height:40%; background: radial-gradient(ellipse at 30% 50%, rgba(255,240,180,.35) 0%, transparent 60%); animation: dhp-glow 4s ease-in-out infinite alternate; }
@keyframes dhp-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dhp-books { 0% { transform:rotate(3deg) translateY(0) } 50% { transform:rotate(-2deg) translateY(-2px) } 100% { transform:rotate(3deg) translateY(0) } }
@keyframes dhp-figure { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-3px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes dhp-hand { 0% { transform:rotate(-10deg) } 50% { transform:rotate(-4deg) } 100% { transform:rotate(-10deg) } }
@keyframes dhp-shadow { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.6; transform:scale(1.04) } 100% { opacity:.4; transform:scale(1) } }
@keyframes dhp-glow { 0% { opacity:.2; transform:scale(1) } 100% { opacity:.4; transform:scale(1.06) } }

/* Scene: susan-mentions-walk (calm bright interior) */
.scn-susan-mentions-walk {
  background: 
    linear-gradient(180deg, #f7f0e6 0%, #e8dcc8 40%, #d4c4a8 100%),
    radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%);
}
.scn-susan-mentions-walk .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(135deg, #ebe2d0 0%, #d6cbb5 100%); }
.scn-susan-mentions-walk .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b8a88a 0%, #9a8a6e 100%); border-radius: 0 0 8% 8%; }
.scn-susan-mentions-walk .window { position:absolute; top:12%; left:30%; width:30%; height:50%; background: linear-gradient(180deg, #cce0ff 0%, #e6f0ff 100%); border:6px solid #8a7a62; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); }
.scn-susan-mentions-walk .curtain-left { position:absolute; top:12%; left:30%; width:8%; height:50%; background: linear-gradient(180deg, #d4bfa0 0%, #b8a384 100%); border-radius: 0 20% 20% 0; animation: sw-curtain 12s ease-in-out infinite alternate; }
.scn-susan-mentions-walk .curtain-right { position:absolute; top:12%; right:30%; width:8%; height:50%; background: linear-gradient(180deg, #d4bfa0 0%, #b8a384 100%); border-radius: 20% 0 0 20%; animation: sw-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-susan-mentions-walk .table { position:absolute; bottom:35%; left:50%; width:40%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #9c8c70 0%, #7a6a50 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.2); }
.scn-susan-mentions-walk .chair { position:absolute; bottom:33%; left:45%; width:8%; height:15%; background: linear-gradient(180deg, #8a7a62 0%, #6a5a46 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: sw-chair 8s ease-in-out infinite; }
.scn-susan-mentions-walk .figure-seated { position:absolute; bottom:38%; left:48%; width:12%; height:22%; background: linear-gradient(180deg, #705a46 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sw-breathe 6s ease-in-out infinite; }
.scn-susan-mentions-walk .vase { position:absolute; bottom:40%; left:55%; width:4%; height:16%; background: linear-gradient(180deg, #c8b090 0%, #a08868 100%); border-radius: 20% 20% 10% 10%; transform: scaleY(1.2); }
@keyframes sw-curtain { 0%,100% { transform: translateX(0); } 50% { transform: translateX(6px); } }
@keyframes sw-chair { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes sw-breathe { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }

/* Scene: lunch-with-professor (tense bright interior) */
.scn-lunch-with-professor {
  background: 
    linear-gradient(180deg, #f2e6d0 0%, #d9cbb0 40%, #bfa68a 100%),
    radial-gradient(ellipse at 70% 20%, rgba(255,200,150,0.3) 0%, transparent 60%);
}
.scn-lunch-with-professor .bg-wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(135deg, #d6c8b0 0%, #c0b098 100%); }
.scn-lunch-with-professor .table-cloth { position:absolute; bottom:30%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #f0e4d0 0%, #e0d0b8 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.15); }
.scn-lunch-with-professor .plate { position:absolute; bottom:40%; left:35%; width:18%; height:12%; background: radial-gradient(circle at 50% 40%, #fcf8f0 0%, #e8dcc8 100%); border-radius: 50%; border:2px solid #b8a28a; }
.scn-lunch-with-professor .professor-head { position:absolute; bottom:55%; left:42%; width:16%; height:20%; background: linear-gradient(180deg, #e0c4a0 0%, #c8a888 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-lunch-with-professor .professor-eyes { position:absolute; bottom:62%; left:46%; width:4%; height:5%; background: radial-gradient(circle, #ffe680 0%, #ffcc33 50%, #8a6a00 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,204,51,0.6); animation: lp-glare 1.5s ease-in-out infinite alternate; }
.scn-lunch-with-professor .cigarette-smoke { position:absolute; bottom:58%; left:49%; width:8%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(200,200,200,0.3) 0%, transparent 70%); filter: blur(6px); animation: lp-smoke 6s ease-in-out infinite; }
.scn-lunch-with-professor .cigarette { position:absolute; bottom:56%; left:48%; width:2%; height:8%; background: linear-gradient(180deg, #f0dcc0 0%, #c8a880 100%); border-radius: 10%; transform: rotate(-15deg); }
.scn-lunch-with-professor .shadow-sharp { position:absolute; bottom:30%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); animation: lp-shadow 4s ease-in-out infinite alternate; }
@keyframes lp-glare { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes lp-smoke { 0%,100% { transform: translateY(0) scaleX(1); opacity:0.3; } 50% { transform: translateY(-8px) scaleX(1.2); opacity:0.6; } }
@keyframes lp-shadow { 0%,100% { opacity:0.4; } 50% { opacity:0.8; } }

/* Scene: cigarette-box-tipped (tense bright interior, close-up) */
.scn-cigarette-box-tipped {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #bfac8e 100%),
    radial-gradient(ellipse at 50% 80%, rgba(255,200,100,0.2) 0%, transparent 60%);
}
.scn-cigarette-box-tipped .table-edge { position:absolute; bottom:30%; left:0; right:0; height:8%; background: linear-gradient(180deg, #a09070 0%, #8a7a5e 100%); border-radius: 4% 4% 0 0; }
.scn-cigarette-box-tipped .box { position:absolute; bottom:35%; left:40%; width:15%; height:15%; background: linear-gradient(135deg, #d4a080 0%, #b08060 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom center; animation: ct-tip 2s ease-in-out infinite alternate; }
.scn-cigarette-box-tipped .hand-left { position:absolute; bottom:40%; left:35%; width:12%; height:18%; background: linear-gradient(180deg, #e8c8a0 0%, #c8a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: ct-grab 2s ease-in-out infinite; }
.scn-cigarette-box-tipped .hand-right { position:absolute; bottom:38%; left:52%; width:12%; height:18%; background: linear-gradient(180deg, #e8c8a0 0%, #c8a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: ct-grab 2s ease-in-out infinite reverse; }
.scn-cigarette-box-tipped .cigarettes-falling { position:absolute; bottom:45%; left:38%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 0%, rgba(255,220,180,0.4) 0%, transparent 70%); filter: blur(4px); animation: ct-fall 1.5s ease-in infinite; }
.scn-cigarette-box-tipped .cigarette-a { position:absolute; bottom:48%; left:42%; width:2%; height:10%; background: linear-gradient(180deg, #f0dcc0 0%, #c8a880 100%); border-radius: 10%; transform: rotate(30deg); animation: ct-slip 1.2s ease-in infinite; }
.scn-cigarette-box-tipped .cigarette-b { position:absolute; bottom:50%; left:46%; width:2%; height:10%; background: linear-gradient(180deg, #f0dcc0 0%, #c8a880 100%); border-radius: 10%; transform: rotate(-20deg); animation: ct-slip 1.4s ease-in infinite 0.3s; }
.scn-cigarette-box-tipped .cigarette-c { position:absolute; bottom:46%; left:50%; width:2%; height:10%; background: linear-gradient(180deg, #f0dcc0 0%, #c8a880 100%); border-radius: 10%; transform: rotate(10deg); animation: ct-slip 1.6s ease-in infinite 0.6s; }
@keyframes ct-tip { 0% { transform: rotate(0); } 100% { transform: rotate(-45deg); } }
@keyframes ct-grab { 0%,100% { transform: translateY(0) rotate(-20deg); } 50% { transform: translateY(-4px) rotate(-25deg); } }
@keyframes ct-fall { 0% { opacity:0; } 30% { opacity:0.5; } 100% { opacity:0; transform: translateY(20px); } }
@keyframes ct-slip { 0% { opacity:1; transform: translateY(0) rotate(30deg); } 100% { opacity:0; transform: translateY(30px) rotate(60deg); } }

/* Scene: professor-skeptical (tense bright interior, confrontation) */
.scn-professor-skeptical {
  background: 
    linear-gradient(180deg, #f2e6d0 0%, #d9cbb0 40%, #bfa68a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(200,160,100,0.2) 0%, transparent 60%);
}
.scn-professor-skeptical .room-back { position:absolute; inset:0 0 55% 0; background: linear-gradient(135deg, #d6c8b0 0%, #c0b098 100%); }
.scn-professor-skeptical .desk { position:absolute; bottom:30%; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #8a7a5e 0%, #6a5a3e 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.3); }
.scn-professor-skeptical .holmes-silhouette { position:absolute; bottom:30%; left:20%; width:18%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: scaleX(-1); animation: ps-sidle 5s ease-in-out infinite alternate; }
.scn-professor-skeptical .professor-silhouette { position:absolute; bottom:30%; right:20%; width:20%; height:42%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: ps-lean 6s ease-in-out infinite; }
.scn-professor-skeptical .professor-eyes-glare { position:absolute; bottom:52%; right:28%; width:5%; height:6%; background: radial-gradient(circle, #ffe680 0%, #ffcc33 50%, #8a6a00 100%); border-radius: 50%; box-shadow: 0 0 25px 8px rgba(255,204,51,0.7); animation: ps-glare 1.8s ease-in-out infinite alternate; }
.scn-professor-skeptical .chain-link { position:absolute; bottom:40%; left:45%; width:8%; height:4%; background: linear-gradient(90deg, #c8a880 0%, #a88860 100%); border-radius: 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: ps-chain 3s ease-in-out infinite; }
.scn-professor-skeptical .shadow-cross { position:absolute; bottom:30%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); border-radius: 50%; animation: ps-cross 7s ease-in-out infinite alternate; }
@keyframes ps-sidle { 0%,100% { transform: translateX(0) scaleX(-1); } 50% { transform: translateX(5px) scaleX(-1); } }
@keyframes ps-lean { 0%,100% { transform: rotate(0); } 50% { transform: rotate(-2deg); } }
@keyframes ps-glare { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.4); opacity:1; } 100% { transform: scale(1); opacity:0.7; } }
@keyframes ps-chain { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.3); } }
@keyframes ps-cross { 0%,100% { opacity:0.3; } 50% { opacity:0.7; } }

.scn-woman-revealed {
  background: linear-gradient(135deg, #d9d0c0 0%, #b8a88a 50%, #a09070 100%),
              radial-gradient(ellipse at 20% 80%, #fff8e0 0%, transparent 50%);
}
.scn-woman-revealed .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8bdaa 0%, #9a8a6a 100%);
}
.scn-woman-revealed .bookcase {
  position: absolute; top: 10%; left: 18%; width: 30%; height: 80%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px 0 0 2px; box-shadow: 6px 0 12px rgba(0,0,0,.25);
  animation: wr-bookcase 6s ease-in-out infinite alternate;
}
.scn-woman-revealed .door-swing {
  position: absolute; top: 10%; left: 48%; width: 28%; height: 75%;
  background: linear-gradient(135deg, #7a6a5a 0%, #4a3a2a 100%);
  transform-origin: left center; border-radius: 0 4px 4px 0;
  animation: wr-door 4s ease-in-out infinite alternate;
  box-shadow: -6px 0 8px rgba(0,0,0,.15);
}
.scn-woman-revealed .woman-rush {
  position: absolute; bottom: 18%; left: 56%; width: 14%; height: 50%;
  background: radial-gradient(ellipse at 50% 20%, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-20%) scale(1.1);
  animation: wr-rush 3s ease-in-out infinite;
}
.scn-woman-revealed .light-beam {
  position: absolute; top: 5%; left: 30%; width: 50%; height: 95%;
  background: linear-gradient(135deg, rgba(255,240,200,.25) 0%, transparent 100%);
  filter: blur(12px);
  animation: wr-beam 5s ease-in-out infinite alternate;
}
.scn-woman-revealed .shadow-sharp {
  position: absolute; bottom: 20%; left: 70%; width: 20%; height: 50%;
  background: rgba(0,0,0,.15); filter: blur(4px);
  border-radius: 50% 10% 20% 20%;
  animation: wr-shadow 4s ease-in-out infinite alternate;
}
.scn-woman-revealed .shelf-detail {
  position: absolute; top: 20%; left: 19%; width: 28%; height: 2%;
  background: #3a2a1a; box-shadow: 0 8px 0 #3a2a1a, 0 16px 0 #3a2a1a, 0 24px 0 #3a2a1a, 0 32px 0 #3a2a1a;
  animation: wr-shelf 8s linear infinite;
}
@keyframes wr-bookcase { 0% { opacity:.9; transform: translateX(0); } 50% { opacity:1; transform: translateX(-2px); } 100% { opacity:.95; transform: translateX(0); } }
@keyframes wr-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-12deg); } 100% { transform: rotateY(0deg); } }
@keyframes wr-rush { 0%,100% { transform: translateX(-20%) scale(1.1) translateY(0); } 25% { transform: translateX(-18%) scale(1.15) translateY(-2px); } 50% { transform: translateX(-15%) scale(1.1) translateY(0); } 75% { transform: translateX(-17%) scale(1.12) translateY(-1px); } }
@keyframes wr-beam { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes wr-shadow { 0% { opacity:.4; transform: skewX(-5deg); } 50% { opacity:.6; transform: skewX(5deg); } 100% { opacity:.5; transform: skewX(-3deg); } }
@keyframes wr-shelf { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }

.scn-woman-dazed {
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 60%, #b0a080 100%),
              radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 60%);
}
.scn-woman-dazed .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e0d0b0 0%, #b8a080 100%);
}
.scn-woman-dazed .figure-dazed {
  position: absolute; bottom: 15%; left: 50%; width: 18%; height: 60%;
  background: radial-gradient(ellipse at 40% 25%, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(2deg);
  animation: wd-dazed 4s ease-in-out infinite;
}
.scn-woman-dazed .light-halo {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse, rgba(255,240,200,.2) 0%, transparent 70%);
  filter: blur(20px);
  animation: wd-halo 6s ease-in-out infinite alternate;
}
.scn-woman-dazed .dust-motes {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 20% 40%, rgba(200,180,140,.15) 0%, transparent 20%),
              radial-gradient(circle at 70% 60%, rgba(200,180,140,.1) 0%, transparent 15%),
              radial-gradient(circle at 40% 80%, rgba(200,180,140,.08) 0%, transparent 10%);
  filter: blur(2px);
  animation: wd-dust 12s linear infinite;
}
.scn-woman-dazed .floor-line {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 1px;
  background: linear-gradient(90deg, transparent, #8a7a6a, transparent);
}
.scn-woman-dazed .chair-shadow {
  position: absolute; bottom: 15%; left: 20%; width: 20%; height: 30%;
  background: rgba(0,0,0,.1); filter: blur(6px);
  border-radius: 30% 30% 10% 10%;
  animation: wd-chair 8s ease-in-out infinite alternate;
}
@keyframes wd-dazed { 0% { transform: translateX(-50%) rotate(2deg) scale(1); } 50% { transform: translateX(-50%) rotate(0deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-1deg) scale(.98); } }
@keyframes wd-halo { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes wd-dust { 0% { background-position: 0 0, 0% 0%, 0% 0%; } 50% { background-position: 20px 10px, 10% -5%, -5% 15%; } 100% { background-position: 40px 20px, 20% -10%, -10% 30%; } }
@keyframes wd-chair { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(.97); } 100% { transform: translateY(0) scale(1); } }

.scn-woman-confesses {
  background: linear-gradient(135deg, #c8bcaa 0%, #a09070 50%, #80705a 100%),
              radial-gradient(ellipse at 60% 40%, #e0c890 0%, transparent 50%);
}
.scn-woman-confesses .wall-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
}
.scn-woman-confesses .old-man-chair {
  position: absolute; bottom: 15%; left: 20%; width: 22%; height: 45%;
  background: radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: wc-oldman 5s ease-in-out infinite;
}
.scn-woman-confesses .woman-standing {
  position: absolute; bottom: 18%; left: 55%; width: 16%; height: 55%;
  background: radial-gradient(ellipse at 40% 25%, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-30%);
  animation: wc-woman 4s ease-in-out infinite alternate;
}
.scn-woman-confesses .window-light {
  position: absolute; top: 10%; right: 15%; width: 25%; height: 50%;
  background: linear-gradient(135deg, rgba(240,220,180,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: wc-window 7s ease-in-out infinite alternate;
}
.scn-woman-confesses .table-silhouette {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 8%;
  background: #2a1a0a; border-radius: 4px; filter: blur(2px);
  animation: wc-table 6s ease-in-out infinite;
}
.scn-woman-confesses .shadow-pool {
  position: absolute; bottom: 10%; left: 50%; width: 40%; height: 10%;
  background: rgba(0,0,0,.15); filter: blur(8px);
  border-radius: 50%;
  animation: wc-pool 5s ease-in-out infinite alternate;
}
@keyframes wc-oldman { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(.98); } }
@keyframes wc-woman { 0% { transform: translateX(-30%) scale(1); } 50% { transform: translateX(-28%) scale(1.05); } 100% { transform: translateX(-32%) scale(.95); } }
@keyframes wc-window { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }
@keyframes wc-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes wc-pool { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.1) translateX(5px); } 100% { transform: scale(.95) translateX(-5px); } }

.scn-holmes-sympathizes {
  background: linear-gradient(135deg, #f0e8d0 0%, #d8c0a0 50%, #b8a080 100%),
              radial-gradient(ellipse at 40% 20%, #ffe8c0 0%, transparent 50%);
}
.scn-holmes-sympathizes .room-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d8c0 0%, #c8b090 100%);
}
.scn-holmes-sympathizes .bed-frame {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 60%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,.2);
  animation: hs-bed 8s ease-in-out infinite alternate;
}
.scn-holmes-sympathizes .woman-seated {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 40% 25%, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: hs-woman 4s ease-in-out infinite;
}
.scn-holmes-sympathizes .window-glow {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 60%;
  background: radial-gradient(ellipse, rgba(255,220,160,.35) 0%, transparent 70%);
  filter: blur(16px);
  animation: hs-glow 6s ease-in-out infinite alternate;
}
.scn-holmes-sympathizes .holmes-shadow {
  position: absolute; bottom: 20%; left: 10%; width: 15%; height: 40%;
  background: rgba(0,0,0,.1); filter: blur(6px);
  border-radius: 20% 40% 30% 30%;
  animation: hs-shadow 10s ease-in-out infinite;
}
.scn-holmes-sympathizes .blanket-fold {
  position: absolute; bottom: 22%; left: 30%; width: 35%; height: 15%;
  background: linear-gradient(135deg, #b8a080 0%, #8a7a6a 100%);
  border-radius: 20% 30% 10% 10%; filter: blur(2px);
  animation: hs-blanket 5s ease-in-out infinite alternate;
}
.scn-holmes-sympathizes .lampshade {
  position: absolute; top: 5%; left: 50%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 50% 20%, #e0c890 0%, #a08050 100%);
  border-radius: 20% 20% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 24px 8px rgba(200,160,80,.3);
  animation: hs-lamp 3s ease-in-out infinite;
}
@keyframes hs-bed { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(.99); } }
@keyframes hs-woman { 0% { transform: translateX(-50%) rotate(-1deg) scale(1); } 50% { transform: translateX(-50%) rotate(0deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(1deg) scale(.98); } }
@keyframes hs-glow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes hs-shadow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.5; transform: scale(1.05); } 100% { opacity:.4; transform: scale(.95); } }
@keyframes hs-blanket { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(.98); } }
@keyframes hs-lamp { 0% { transform: translateX(-50%) scale(1); opacity:.8; } 50% { transform: translateX(-50%) scale(1.05); opacity:1; } 100% { transform: translateX(-50%) scale(.95); opacity:.7; } }

/* scene indian-room-visit */
.scn-indian-room-visit {
  background:
    linear-gradient(135deg, #f5e6c8 0%, #dbbf9e 40%, #b89a6e 100%),
    radial-gradient(ellipse at 30% 60%, #fff5e0 0%, transparent 70%);
}
.scn-indian-room-visit .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f5e6c8 0%, #e4cfb0 100%);
  animation: irv-bg 10s ease-in-out infinite alternate;
}
.scn-indian-room-visit .doorway {
  position: absolute; bottom: 8%; left: 50%; width: 45%; height: 70%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b89a6e 0%, #8a6f4f 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-indian-room-visit .door-left {
  position: absolute; bottom: 8%; left: 20%; width: 22%; height: 68%;
  transform: rotateY(15deg); transform-origin: left;
  background: linear-gradient(180deg, #d1b88c 0%, #a88a62 100%);
  border: 2px solid #7a5e3e;
  border-radius: 2% 0 0 2%;
  animation: irv-door 6s ease-in-out infinite alternate;
}
.scn-indian-room-visit .door-right {
  position: absolute; bottom: 8%; right: 20%; width: 22%; height: 68%;
  transform: rotateY(-15deg); transform-origin: right;
  background: linear-gradient(180deg, #d1b88c 0%, #a88a62 100%);
  border: 2px solid #7a5e3e;
  border-radius: 0 2% 2% 0;
  animation: irv-door 6s ease-in-out infinite alternate-reverse;
}
.scn-indian-room-visit .figure-knock {
  position: absolute; bottom: 10%; left: 47%; width: 16px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: irv-knock 4s ease-in-out infinite;
}
.scn-indian-room-visit .lamp-glow {
  position: absolute; top: 15%; right: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd78c 0%, #e8b860 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: irv-lamp 3s ease-in-out infinite alternate;
}
.scn-indian-room-visit .rug {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(90deg, #7a533a 0%, #9d6b4a 30%, #7a533a 70%, #5a3a2a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.2);
}
@keyframes irv-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes irv-door { 0% { transform: rotateY(15deg) } 100% { transform: rotateY(0deg) } }
@keyframes irv-knock { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 30% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 60% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes irv-lamp { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 0.9; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(1) } }

/* scene mclaren-rudeness */
.scn-mclaren-rudeness {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #cbb699 40%, #a08866 100%),
    radial-gradient(ellipse at 70% 40%, #fff3d6 0%, transparent 60%);
}
.scn-mclaren-rudeness .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d9cbb8 0%, #b8a58a 100%);
  animation: mcl-hall 8s ease-in-out infinite alternate;
}
.scn-mclaren-rudeness .stair-rail {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 4px;
  background: linear-gradient(90deg, #5a3e2a 0%, #8a6a4a 50%, #5a3e2a 100%);
  border-radius: 2px;
  transform: skewY(-5deg);
  box-shadow: 0 6px 8px rgba(0,0,0,0.3);
}
.scn-mclaren-rudeness .figure-angry {
  position: absolute; bottom: 10%; left: 35%; width: 22px; height: 44px;
  transform: rotate(5deg);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mcl-angry 0.6s ease-in-out infinite alternate;
}
.scn-mclaren-rudeness .figure-guide {
  position: absolute; bottom: 12%; right: 30%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mcl-guide 3s ease-in-out infinite;
}
.scn-mclaren-rudeness .shadow-harsh {
  position: absolute; bottom: 0; left: 30%; width: 50%; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
}
.scn-mclaren-rudeness .lamp-swing {
  position: absolute; top: 5%; right: 15%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd78c 0%, #c89450 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: top center;
  animation: mcl-swing 1.5s ease-in-out infinite;
}
.scn-mclaren-rudeness .door-slam {
  position: absolute; bottom: 8%; right: 10%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a402a 100%);
  border-left: 3px solid #2a1a08;
  border-radius: 0 4% 4% 0;
  box-shadow: -6px 0 12px rgba(0,0,0,0.5);
  animation: mcl-door 4s ease-in-out infinite;
}
@keyframes mcl-hall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes mcl-angry { 0% { transform: rotate(5deg) translateX(0) } 100% { transform: rotate(8deg) translateX(3px) } }
@keyframes mcl-guide { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-8px) } }
@keyframes mcl-swing { 0% { transform: rotate(-8deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-8deg) } }
@keyframes mcl-door { 0%,100% { transform: translateX(0) } 50% { transform: translateX(10px) } }

/* scene height-clue */
.scn-height-clue {
  background:
    linear-gradient(180deg, #f2ead0 0%, #dcc8a8 40%, #b8a07a 100%),
    radial-gradient(ellipse at 40% 70%, #fff8e7 0%, transparent 70%);
}
.scn-height-clue .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e7d6b8 0%, #cbb79e 100%);
}
.scn-height-clue .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 35%; height: 80%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-height-clue .desk {
  position: absolute; bottom: 8%; left: 40%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4e2e 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-height-clue .figure-holmes {
  position: absolute; bottom: 12%; left: 35%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: htc-holmes 5s ease-in-out infinite;
}
.scn-height-clue .figure-soames {
  position: absolute; bottom: 10%; right: 25%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: htc-soames 6s ease-in-out infinite alternate;
}
.scn-height-clue .candle-flame {
  position: absolute; bottom: 25%; left: 55%; width: 8px; height: 14px;
  background: radial-gradient(circle, #ffcc66 0%, #e69640 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: htc-candle 2s ease-in-out infinite alternate;
}
.scn-height-clue .window {
  position: absolute; top: 10%; right: 5%; width: 25%; height: 55%;
  background: linear-gradient(180deg, #b8d8e8 0%, #8ab0c8 100%);
  border: 4px solid #5a3e2a;
  border-radius: 4%;
  opacity: 0.6;
  animation: htc-window 12s ease-in-out infinite alternate;
}
.scn-height-clue .clock {
  position: absolute; top: 15%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8a870 0%, #8a6a4a 100%);
  border-radius: 50%;
  border: 3px solid #5a3e2a;
  animation: htc-clock 60s linear infinite;
}
@keyframes htc-holmes { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-4px) rotate(1deg) } 70% { transform: translateY(0) rotate(-1deg) } }
@keyframes htc-soames { 0% { transform: rotate(-5deg) translateX(0) } 100% { transform: rotate(0deg) translateX(5px) } }
@keyframes htc-candle { 0% { opacity: 0.7; transform: scale(1) } 100% { opacity: 1; transform: scale(1.1) translateY(-1px) } }
@keyframes htc-window { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }
@keyframes htc-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

/* scene holmes-leaves-instructs */
.scn-holmes-leaves-instructs {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 20% 60%, #3a3a5e 0%, transparent 70%);
}
.scn-holmes-leaves-instructs .dim-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1e30 0%, #141420 100%);
  animation: hli-dim 12s ease-in-out infinite alternate;
}
.scn-holmes-leaves-instructs .doorway-dark {
  position: absolute; bottom: 5%; left: 50%; width: 40%; height: 75%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a15 0%, #000 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-holmes-leaves-instructs .figure-standing {
  position: absolute; bottom: 10%; left: 50%; width: 16px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hli-figure 8s ease-in-out infinite;
}
.scn-holmes-leaves-instructs .coat-rack {
  position: absolute; bottom: 8%; right: 20%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  transform: rotate(5deg);
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-holmes-leaves-instructs .candle-dim {
  position: absolute; bottom: 20%; left: 25%; width: 6px; height: 12px;
  background: radial-gradient(circle, #ffaa44 0%, #a06020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(2px);
  animation: hli-candle 3s ease-in-out infinite alternate;
}
.scn-holmes-leaves-instructs .chair {
  position: absolute; bottom: 5%; left: 15%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-holmes-leaves-instructs .picture-frame {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 25%;
  border: 2px solid #5a3e2a;
  border-radius: 2%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 100%);
  box-shadow: 0 0 8px rgba(0,0,0,0.6);
  animation: hli-frame 15s ease-in-out infinite alternate;
}
@keyframes hli-dim { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes hli-figure { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes hli-candle { 0% { opacity: 0.5; transform: scale(0.9) } 100% { opacity: 0.8; transform: scale(1.1) } }
@keyframes hli-frame { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

.scn-hopkins-greets {
  background:
    linear-gradient(180deg, #f5d6b0 0%, #f0c8a0 20%, #d4a87a 50%, #8a6a4a 100%),
    radial-gradient(ellipse at 30% 80%, #e8c090 0%, transparent 60%);
}

.scn-hopkins-greets .dawn-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f7e4c8 0%, #f0c8a0 40%, transparent 60%);
  animation: hg-sky 15s ease-in-out infinite alternate;
}

.scn-hopkins-greets .doorway {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 80%;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 0 4px #4a3a2a, inset 0 0 20px rgba(0,0,0,.5);
  animation: hg-door 20s ease-in-out infinite;
}

.scn-hopkins-greets .hopkins-figure {
  position: absolute; bottom: 0; left: 40%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  clip-path: polygon(40% 0%, 60% 0%, 65% 10%, 60% 20%, 70% 30%, 60% 40%, 55% 50%, 55% 80%, 50% 100%, 45% 100%, 45% 80%, 40% 50%, 35% 40%, 25% 30%, 30% 20%, 35% 10%);
  animation: hg-fig 4s ease-in-out infinite alternate;
}

.scn-hopkins-greets .morning-light {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(135deg, rgba(255,230,180,.5) 0%, transparent 70%);
  filter: blur(12px);
  animation: hg-light 10s ease-in-out infinite alternate;
}

.scn-hopkins-greets .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  animation: hg-floor 12s ease-in-out infinite;
}

@keyframes hg-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes hg-door { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes hg-fig { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes hg-light { 0%{opacity:.4; transform:translateX(-5%)} 50%{opacity:.8; transform:translateX(5%)} 100%{opacity:.5; transform:translateX(0)} }
@keyframes hg-floor { 0%{opacity:.6} 50%{opacity:1} 100%{opacity:.7} }

.scn-sir-eustace-dead {
  background:
    linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 30%, #1a1a2e 70%, #0e0e1a 100%),
    radial-gradient(ellipse at 60% 60%, #2a2a3e 0%, transparent 60%);
}

.scn-sir-eustace-dead .dark-walls {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 40%, #0e0e1a 100%);
  animation: sed-walls 20s ease-in-out infinite alternate;
}

.scn-sir-eustace-dead .fireplace {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.8);
  animation: sed-fire 10s ease-in-out infinite;
}

.scn-sir-eustace-dead .poker {
  position: absolute; bottom: 25%; left: 35%; width: 2%; height: 20%;
  background: linear-gradient(0deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: rotate(30deg);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: sed-poker 5s ease-in-out infinite alternate;
}

.scn-sir-eustace-dead .body-silhouette {
  position: absolute; bottom: 5%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  clip-path: polygon(20% 40%, 40% 10%, 60% 10%, 80% 40%, 75% 60%, 70% 80%, 65% 100%, 35% 100%, 30% 80%, 25% 60%);
  animation: sed-body 6s ease-in-out infinite;
}

.scn-sir-eustace-dead .window-light {
  position: absolute; top: 20%; right: 10%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #4a5a6a 0%, transparent 100%);
  filter: blur(20px);
  opacity: .5;
  animation: sed-window 12s ease-in-out infinite alternate;
}

.scn-sir-eustace-dead .blood-pool {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 8%;
  background: radial-gradient(ellipse, #5e1a1d 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sed-blood 8s ease-in-out infinite;
}

@keyframes sed-walls { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes sed-fire { 0%{opacity:.6; transform:scaleY(1)} 50%{opacity:.9; transform:scaleY(1.03)} 100%{opacity:.7; transform:scaleY(1)} }
@keyframes sed-poker { 0%{transform:rotate(28deg)} 50%{transform:rotate(32deg)} 100%{transform:rotate(28deg)} }
@keyframes sed-body { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes sed-window { 0%{opacity:.3; transform:translateX(-5%)} 50%{opacity:.6; transform:translateX(5%)} 100%{opacity:.4; transform:translateX(0)} }
@keyframes sed-blood { 0%{opacity:.6; transform:scaleX(1)} 50%{opacity:.9; transform:scaleX(1.05)} 100%{opacity:.7; transform:scaleX(1)} }

.scn-lady-brackenstall {
  background:
    linear-gradient(180deg, #fff5e6 0%, #f5e0d0 30%, #e8d0c0 70%, #d4b8a8 100%),
    radial-gradient(ellipse at 50% 40%, #fff0e0 0%, transparent 70%);
}

.scn-lady-brackenstall .interior-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f5e8d8 0%, #e8d0c0 50%, #d4b8a8 100%);
  animation: lb-bg 15s ease-in-out infinite alternate;
}

.scn-lady-brackenstall .window-bright {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(135deg, #fff8f0 0%, #f0e0d0 100%);
  border-radius: 10%;
  box-shadow: 0 0 30px rgba(255,255,240,.5);
  animation: lb-window 20s ease-in-out infinite;
}

.scn-lady-brackenstall .lady-profile {
  position: absolute; bottom: 10%; right: 15%; width: 35%; height: 55%;
  background: linear-gradient(180deg, #c0a890 0%, #a09080 50%, #807060 100%);
  clip-path: polygon(30% 0%, 70% 0%, 80% 5%, 85% 15%, 80% 30%, 75% 40%, 70% 50%, 70% 80%, 65% 100%, 35% 100%, 30% 80%, 30% 50%, 25% 40%, 20% 30%, 15% 15%, 20% 5%);
  animation: lb-profile 12s ease-in-out infinite alternate;
}

.scn-lady-brackenstall .chair {
  position: absolute; bottom: 5%; left: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 -4px 10px rgba(0,0,0,.3);
  animation: lb-chair 8s ease-in-out infinite;
}

.scn-lady-brackenstall .bruise-accent {
  position: absolute; top: 30%; right: 25%; width: 6%; height: 6%;
  background: radial-gradient(circle, #702243 0%, #4a152a 60%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: lb-bruise 6s ease-in-out infinite;
}

.scn-lady-brackenstall .hair-glow {
  position: absolute; top: 8%; right: 18%; width: 30%; height: 25%;
  background: radial-gradient(ellipse, #f0d080 0%, transparent 70%);
  filter: blur(15px);
  animation: lb-hair 14s ease-in-out infinite alternate;
}

@keyframes lb-bg { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes lb-window { 0%{opacity:.7; transform:scale(1)} 50%{opacity:1; transform:scale(1.02)} 100%{opacity:.8; transform:scale(1)} }
@keyframes lb-profile { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes lb-chair { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.01)} 100%{transform:scaleY(1)} }
@keyframes lb-bruise { 0%{opacity:.6; transform:scale(1)} 50%{opacity:1; transform:scale(1.2)} 100%{opacity:.7; transform:scale(1)} }
@keyframes lb-hair { 0%{opacity:.5; transform:translateX(-5%)} 50%{opacity:.8; transform:translateX(5%)} 100%{opacity:.6; transform:translateX(0)} }

.scn-lady-recounts {
  background:
    linear-gradient(180deg, #fff8f0 0%, #f5e8d8 30%, #dcc8b8 70%, #c0a890 100%),
    radial-gradient(ellipse at 40% 30%, #fff0e0 0%, transparent 60%);
}

.scn-lady-recounts .interior-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0e0d0 0%, #dcc8b8 50%, #c0a890 100%);
  animation: lr-bg 18s ease-in-out infinite alternate;
}

.scn-lady-recounts .table {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(0deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: lr-table 12s ease-in-out infinite;
}

.scn-lady-recounts .hands-clasped {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #b0a090 0%, #908070 100%);
  clip-path: polygon(20% 40%, 35% 20%, 50% 10%, 65% 20%, 80% 40%, 75% 60%, 65% 80%, 50% 90%, 35% 80%, 25% 60%);
  animation: lr-hands 5s ease-in-out infinite alternate;
}

.scn-lady-recounts .shadow-sharp {
  position: absolute; bottom: 0; left: 0; width: 50%; height: 100%;
  background: linear-gradient(90deg, rgba(0,0,0,.4) 0%, transparent 100%);
  filter: blur(5px);
  animation: lr-shadow 8s ease-in-out infinite reverse;
}

.scn-lady-recounts .lamp {
  position: absolute; top: 15%; right: 20%; width: 8%; height: 12%;
  background: radial-gradient(circle, #f0d080 0%, #c09860 60%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(240,208,128,.5);
  animation: lr-lamp 4s ease-in-out infinite alternate;
}

.scn-lady-recounts .tense-atmosphere {
  position: absolute; inset: 0; background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(0,0,0,.05) 4px, rgba(0,0,0,.05) 8px);
  pointer-events: none;
  animation: lr-tense 2s linear infinite;
}

@keyframes lr-bg { 0%{opacity:.7; transform:scale(1)} 50%{opacity:1; transform:scale(1.01)} 100%{opacity:.8; transform:scale(1)} }
@keyframes lr-table { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes lr-hands { 0%{transform:rotate(-3deg) scale(1)} 50%{transform:rotate(3deg) scale(1.05)} 100%{transform:rotate(0) scale(1)} }
@keyframes lr-shadow { 0%{opacity:.3} 50%{opacity:.6} 100%{opacity:.4} }
@keyframes lr-lamp { 0%{box-shadow: 0 0 20px 5px rgba(240,208,128,.4); opacity:.8} 50%{box-shadow: 0 0 40px 15px rgba(240,208,128,.7); opacity:1} 100%{box-shadow: 0 0 25px 8px rgba(240,208,128,.5); opacity:.9} }
@keyframes lr-tense { 0%{background-position:0 0} 100%{background-position:20px 20px} }

/* Sir-Eustace-reputation */
.scn-Sir-Eustace-reputation {
  background: linear-gradient(180deg, #f5e6d3 0%, #e8d5b8 40%, #d4b896 100%), radial-gradient(ellipse at 50% 20%, #fffae6 0%, transparent 60%);
}
.scn-Sir-Eustace-reputation .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #c9b9a0 0%, #b8a080 100%); animation: se-room 20s ease-in-out infinite alternate;
}
.scn-Sir-Eustace-reputation .fireplace-glow {
  position:absolute; bottom:0; left:10%; width:30%; height:60%; background: radial-gradient(ellipse at 50% 100%, #ffdd99 0%, #cc8844 40%, transparent 70%); animation: se-fire 6s ease-in-out infinite;
}
.scn-Sir-Eustace-reputation .armchair {
  position:absolute; bottom:5%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, #6b4a2e 0%, #4a3320 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: se-chair 12s ease-in-out infinite;
}
.scn-Sir-Eustace-reputation .figure-silhouette {
  position:absolute; bottom:10%; left:40%; width:18%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: se-figure 8s ease-in-out infinite;
}
.scn-Sir-Eustace-reputation .decanter {
  position:absolute; bottom:25%; left:52%; width:6%; height:18%; background: linear-gradient(180deg, #bdaa77 0%, #8a7a55 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 12px 4px rgba(200,180,120,0.4); animation: se-decanter 10s ease-in-out infinite alternate;
}
.scn-Sir-Eustace-reputation .wall-picture {
  position:absolute; top:15%; right:15%; width:15%; height:20%; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); border: 2px solid #6b4a2e; border-radius: 4px; animation: se-picture 25s ease-in-out infinite alternate;
}
.scn-Sir-Eustace-reputation .shadow-strip {
  position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(30,20,10,0.15) 0%, transparent 100%); animation: se-shadow 15s ease-in-out infinite;
}
@keyframes se-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes se-fire { 0%,100% { opacity:0.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } }
@keyframes se-chair { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(0.5deg) } }
@keyframes se-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes se-decanter { 0% { box-shadow: 0 0 8px 2px rgba(200,180,120,0.3); transform: translateY(0) } 50% { box-shadow: 0 0 20px 6px rgba(200,180,120,0.6); transform: translateY(-3px) } 100% { box-shadow: 0 0 10px 3px rgba(200,180,120,0.4); transform: translateY(0) } }
@keyframes se-picture { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) rotate(0.3deg) } }
@keyframes se-shadow { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }

/* brighter-house-without-him */
.scn-brighter-house-without-him {
  background: linear-gradient(180deg, #f0e6d8 0%, #e0d0b8 50%, #c8b89a 100%), radial-gradient(ellipse at 50% 80%, #fff5e6 0%, transparent 70%);
}
.scn-brighter-house-without-him .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8a080 0%, #9a7a5a 100%); animation: bh-floor 15s ease-in-out infinite alternate;
}
.scn-brighter-house-without-him .wall-panel {
  position:absolute; top:0; left:10%; right:10%; bottom:40%; background: linear-gradient(180deg, #d4c0a0 0%, #c0aa8a 100%); border-radius: 0 0 8% 8%; animation: bh-wall 20s ease-in-out infinite;
}
.scn-brighter-house-without-him .holmes-silhouette {
  position:absolute; bottom:30%; left:30%; width:25%; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: bh-holmes 9s ease-in-out infinite;
}
.scn-brighter-house-without-him .red-cord {
  position:absolute; bottom:50%; left:35%; width:2%; height:30%; background: linear-gradient(180deg, #b8483a 0%, #a0382a 100%); border-radius: 10px; box-shadow: 0 0 8px 2px rgba(150,50,40,0.4); animation: bh-cord 6s ease-in-out infinite;
}
.scn-brighter-house-without-him .table-edge {
  position:absolute; bottom:25%; left:25%; right:25%; height:5%; background: linear-gradient(180deg, #6b4a2e 0%, #4a3320 100%); border-radius: 4px; animation: bh-table 12s ease-in-out infinite alternate;
}
.scn-brighter-house-without-him .window-light {
  position:absolute; top:5%; right:5%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 50%, #fffae6 0%, #f0e0c0 40%, transparent 70%); animation: bh-window 18s ease-in-out infinite;
}
@keyframes bh-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bh-wall { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes bh-holmes { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bh-cord { 0%,100% { transform: scaleY(1) rotate(0) } 50% { transform: scaleY(1.05) rotate(2deg) } }
@keyframes bh-table { 0% { box-shadow: inset 0 2px 4px rgba(0,0,0,0.2); transform: translateY(0) } 50% { box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); transform: translateY(-1px) } 100% { box-shadow: inset 0 2px 4px rgba(0,0,0,0.2); transform: translateY(0) } }
@keyframes bh-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }

/* bell-rope-analysis */
.scn-bell-rope-analysis {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #b8a88a 100%), radial-gradient(ellipse at 50% 60%, #fff5e0 0%, transparent 70%);
}
.scn-bell-rope-analysis .wall-texture {
  position:absolute; inset:0; background: linear-gradient(180deg, #c8b89a 0%, #b8a88a 100%); animation: br-wall 20s ease-in-out infinite alternate;
}
.scn-bell-rope-analysis .bell-rope {
  position:absolute; top:10%; left:45%; width:3%; height:70%; background: linear-gradient(180deg, #b8a080 0%, #8a7a5a 100%); border-radius: 8px; animation: br-rope 7s ease-in-out infinite;
}
.scn-bell-rope-analysis .pulley {
  position:absolute; top:8%; left:44%; width:5%; height:8%; background: radial-gradient(circle, #6b4a2e 0%, #4a3320 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: br-pulley 15s ease-in-out infinite alternate;
}
.scn-bell-rope-analysis .hand-silhouette {
  position:absolute; top:45%; left:40%; width:15%; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: top center; animation: br-hand 8s ease-in-out infinite;
}
.scn-bell-rope-analysis .shadow-arch {
  position:absolute; top:0; left:20%; width:60%; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(40,30,20,0.15) 0%, transparent 70%); animation: br-arch 25s ease-in-out infinite;
}
.scn-bell-rope-analysis .rope-shadow {
  position:absolute; top:12%; left:48%; width:2%; height:65%; background: rgba(0,0,0,0.1); filter: blur(3px); animation: br-rope-shadow 7s ease-in-out infinite;
}
@keyframes br-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes br-rope { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }
@keyframes br-pulley { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.02) rotate(3deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes br-hand { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(5px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes br-arch { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes br-rope-shadow { 0%,100% { opacity:0.4 } 50% { opacity:0.8 } }

/* suspicion-on-maid */
.scn-suspicion-on-maid {
  background: linear-gradient(180deg, #e0d0b8 0%, #d0bea0 50%, #b8a080 100%), radial-gradient(ellipse at 50% 70%, #fff4e0 0%, transparent 60%);
}
.scn-suspicion-on-maid .room-dark {
  position:absolute; inset:0; background: linear-gradient(180deg, #c0a88a 0%, #a8886a 100%); animation: sm-room 18s ease-in-out infinite alternate;
}
.scn-suspicion-on-maid .maid-silhouette {
  position:absolute; bottom:20%; left:30%; width:20%; height:60%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sm-maid 9s ease-in-out infinite;
}
.scn-suspicion-on-maid .decanter-flying {
  position:absolute; top:30%; left:55%; width:6%; height:12%; background: linear-gradient(180deg, #bdaa77 0%, #8a7a55 100%); border-radius: 40% 40% 20% 20%; transform: rotate(40deg); animation: sm-decanter 4s ease-in-out infinite;
}
.scn-suspicion-on-maid .splash-shadow {
  position:absolute; bottom:45%; left:45%; width:15%; height:5%; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); filter: blur(4px); animation: sm-splash 4s ease-in-out infinite;
}
.scn-suspicion-on-maid .door-frame {
  position:absolute; top:0; left:5%; width:25%; height:100%; background: linear-gradient(180deg, #6b4a2e 0%, #4a3320 100%); border-radius: 4px; animation: sm-door 22s ease-in-out infinite;
}
.scn-suspicion-on-maid .floor-line {
  position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); animation: sm-floor 14s ease-in-out infinite alternate;
}
@keyframes sm-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sm-maid { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(4px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sm-decanter { 0%,100% { transform: translateY(0) rotate(40deg); opacity:0.8 } 50% { transform: translateY(-20px) rotate(50deg); opacity:1 } }
@keyframes sm-splash { 0%,100% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.9; transform: scaleX(1.5) } }
@keyframes sm-door { 0% { box-shadow: inset 0 0 0 rgba(0,0,0,0.2) } 50% { box-shadow: inset -2px 0 8px rgba(0,0,0,0.3) } 100% { box-shadow: inset 0 0 0 rgba(0,0,0,0.2) } }
@keyframes sm-floor { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }

.scn-holmes-offers-cigar { background: linear-gradient(180deg, #3a1e0a 0%, #2a1205 40%, #1a0a02 100%), radial-gradient(ellipse at 40% 80%, #c86030 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-holmes-offers-cigar .hoc-fire { position:absolute; bottom:0; left:0; right:0; height:50%; background: radial-gradient(ellipse at 60% 100%, #ffa030 0%, #c86030 40%, transparent 60%); animation: hoc-fire 4s ease-in-out infinite alternate; }
.scn-holmes-offers-cigar .hoc-mantle { position:absolute; bottom:45%; left:5%; width:40%; height:10%; background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
.scn-holmes-offers-cigar .hoc-figure { position:absolute; bottom:20%; left:10%; width:50px; height:90px; background: linear-gradient(180deg, #1a0a02 0%, #0d0501 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(5deg); animation: hoc-figure 8s ease-in-out infinite; }
.scn-holmes-offers-cigar .hoc-arm { position:absolute; bottom:35%; left:25%; width:80px; height:10px; background: linear-gradient(90deg, #1a0a02 0%, #2a1a0a 100%); border-radius: 50% 20% 20% 50%; transform-origin: left center; transform: rotate(20deg); animation: hoc-arm 6s ease-in-out infinite; }
.scn-holmes-offers-cigar .hoc-hand { position:absolute; bottom:30%; left:50%; width:12px; height:18px; background: #2a1a0a; border-radius: 40% 30% 30% 40%; transform: rotate(10deg); animation: hoc-hand 3s ease-in-out infinite; }
.scn-holmes-offers-cigar .hoc-cigar { position:absolute; bottom:28%; left:55%; width:30px; height:6px; background: linear-gradient(90deg, #4a2a0a 0%, #6a3a0a 100%); border-radius: 20% 20% 20% 20%; transform: rotate(-15deg); box-shadow: 0 0 8px 2px rgba(200,100,40,.6); animation: hoc-cigar 2s ease-in-out infinite; }
.scn-holmes-offers-cigar .hoc-smoke { position:absolute; bottom:50%; left:55%; width:20px; height:30px; background: radial-gradient(ellipse, rgba(200,150,100,.3) 0%, transparent 70%); filter: blur(4px); animation: hoc-smoke 10s linear infinite; }
@keyframes hoc-fire { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.8; transform: scaleY(.95) } }
@keyframes hoc-figure { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes hoc-arm { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(20deg) } }
@keyframes hoc-hand { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(15deg) scale(1.05) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes hoc-cigar { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes hoc-smoke { 0% { transform: translate(0,0) scale(1); opacity:.3 } 50% { transform: translate(10px,-20px) scale(1.5); opacity:.1 } 100% { transform: translate(20px,-40px) scale(2); opacity:0 } }

.scn-abbey-grange-confrontation { background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 40%, #050510 100%), radial-gradient(ellipse at 30% 50%, #5a5a7a 0%, transparent 50%); position:relative; overflow:hidden; }
.scn-abbey-grange-confrontation .agc-gaslight { position:absolute; top:10%; left:20%; width:60px; height:80px; background: radial-gradient(circle, #ffffc0 0%, #c0c080 40%, transparent 80%); animation: agc-glow 4s ease-in-out infinite alternate; }
.scn-abbey-grange-confrontation .agc-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a2e 0%, #0a0a1e 50%, #1a1a2e 100%); }
.scn-abbey-grange-confrontation .agc-table { position:absolute; bottom:20%; left:20%; width:60%; height:8%; background: #2a2a3a; border-radius:0 0 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-abbey-grange-confrontation .agc-shadow { position:absolute; bottom:20%; left:40%; width:50px; height:80px; background: rgba(0,0,0,.4); transform: skewX(-10deg); animation: agc-shadow 6s ease-in-out infinite; }
.scn-abbey-grange-confrontation .agc-figure1 { position:absolute; bottom:20%; left:25%; width:40px; height:110px; background: linear-gradient(180deg, #0a0a1e 0%, #050510 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(2deg); animation: agc-fig1 3s ease-in-out infinite; }
.scn-abbey-grange-confrontation .agc-figure2 { position:absolute; bottom:20%; right:25%; width:40px; height:100px; background: linear-gradient(180deg, #0a0a1e 0%, #050510 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(-2deg); animation: agc-fig2 3.5s ease-in-out infinite; }
@keyframes agc-glow { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(.95) } }
@keyframes agc-shadow { 0% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-8deg) translateX(5px) } 100% { transform: skewX(-10deg) translateX(0) } }
@keyframes agc-fig1 { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-3px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes agc-fig2 { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }

.scn-abbey-grange-confession { background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 50%, #0a0a12 100%), radial-gradient(ellipse at 70% 30%, #6a6a8a 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-abbey-grange-confession .agc2-lamp { position:absolute; top:15%; right:20%; width:40px; height:50px; background: radial-gradient(circle at 50% 20%, #ffffc0 0%, #c0c080 50%, transparent 80%); animation: agc2-lamp 5s ease-in-out infinite alternate; }
.scn-abbey-grange-confession .agc2-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2e 0%, #0a0a1e 100%); }
.scn-abbey-grange-confession .agc2-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); }
.scn-abbey-grange-confession .agc2-figure { position:absolute; bottom:5%; left:40%; width:50px; height:80px; background: linear-gradient(180deg, #0a0a1e 0%, #050510 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform-origin: bottom center; transform: rotate(10deg); animation: agc2-fig 4s ease-in-out infinite; }
.scn-abbey-grange-confession .agc2-hand { position:absolute; bottom:15%; left:46%; width:8px; height:12px; background: #0a0a1e; border-radius: 30% 30% 20% 20%; transform: rotate(30deg); animation: agc2-hand 3s ease-in-out infinite; }
.scn-abbey-grange-confession .agc2-shadow { position:absolute; bottom:0; left:35%; width:80px; height:20px; background: rgba(0,0,0,.5); filter: blur(4px); animation: agc2-shadow 6s ease-in-out infinite; }
@keyframes agc2-lamp { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.85; transform: scale(.95) } }
@keyframes agc2-fig { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes agc2-hand { 0% { transform: rotate(30deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(30deg) } }
@keyframes agc2-shadow { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(3px) scale(1.05) } 100% { transform: translateX(0) scale(1) } }

.scn-sailors-backstory { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #0d0500 100%), radial-gradient(ellipse at 50% 80%, #c08040 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-sailors-backstory .sb-candle { position:absolute; bottom:35%; left:15%; width:10px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c08040 100%); border-radius:20% 20% 40% 40%; box-shadow: 0 0 16px 4px rgba(200,130,60,.5); animation: sb-candle 3s ease-in-out infinite alternate; }
.scn-sailors-backstory .sb-table { position:absolute; bottom:15%; left:10%; width:80%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-sailors-backstory .sb-figure { position:absolute; bottom:15%; left:55%; width:40px; height:90px; background: linear-gradient(180deg, #1a0a02 0%, #0d0501 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(-3deg); animation: sb-fig 8s ease-in-out infinite; }
.scn-sailors-backstory .sb-glass { position:absolute; bottom:28%; left:35%; width:16px; height:20px; background: linear-gradient(180deg, rgba(180,150,100,.4) 0%, rgba(100,80,50,.3) 100%); border-radius:0 0 30% 30%; transform: rotate(5deg); animation: sb-glass 6s ease-in-out infinite; }
.scn-sailors-backstory .sb-ship { position:absolute; top:10%; right:10%; width:50px; height:40px; background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 100%); clip-path: polygon(0% 100%, 30% 0%, 70% 0%, 100% 100%, 60% 80%, 40% 80%); animation: sb-ship 12s linear infinite; }
.scn-sailors-backstory .sb-shadow { position:absolute; bottom:0; left:20%; width:60%; height:15%; background: rgba(0,0,0,.4); filter: blur(8px); animation: sb-shadow 8s ease-in-out infinite; }
@keyframes sb-candle { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(.95); opacity:.85 } }
@keyframes sb-fig { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes sb-glass { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(5deg) } }
@keyframes sb-ship { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes sb-shadow { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.05) } 100% { opacity:.4; transform: scaleX(1) } }

.scn-armstrongs-note {
  background: linear-gradient(180deg, #3a2a2a 0%, #5a4a3a 40%, #8a7a5a 100%), radial-gradient(ellipse at 30% 60%, #c0a060 0%, transparent 60%);
}
.scn-armstrongs-note .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a2a 0%, #2a1a1a 100%); }
.scn-armstrongs-note .desk { position:absolute; bottom:10%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); }
.scn-armstrongs-note .note { position:absolute; bottom:28%; left:45%; width:16%; height:20%; background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%); transform: rotate(-5deg); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: an-note 3s ease-in-out infinite alternate; }
.scn-armstrongs-note .lamp-base { position:absolute; bottom:22%; left:25%; width:10%; height:18%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius:10% 10% 40% 40%; }
.scn-armstrongs-note .lamp-glow { position:absolute; bottom:38%; left:25%; width:20%; height:40%; background: radial-gradient(ellipse, #ffd080 0%, #c08040 40%, transparent 70%); filter: blur(8px); animation: an-glow 2s ease-in-out infinite alternate; }
.scn-armstrongs-note .pen { position:absolute; bottom:25%; left:60%; width:6%; height:2%; background: #2a1a0a; border-radius:20% 80% 80% 20%; transform: rotate(-20deg); animation: an-pen 4s ease-in-out infinite; }
.scn-armstrongs-note .shadow-figure { position:absolute; bottom:15%; right:15%; width:12%; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom; animation: an-figure 6s ease-in-out infinite; }
@keyframes an-note { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes an-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.08); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes an-pen { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(3px); } 100% { transform: rotate(-25deg) translateX(-2px); } }
@keyframes an-figure { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

.scn-watson-offers-to-follow {
  background: linear-gradient(180deg, #d4c8a8 0%, #e8dcc0 30%, #f0e8d0 100%), radial-gradient(ellipse at 50% 100%, #f0e0c0 0%, transparent 70%);
}
.scn-watson-offers-to-follow .window { position:absolute; top:10%; left:10%; right:10%; bottom:30%; background: linear-gradient(180deg, #b0d0e8 0%, #c0d8f0 50%, #d0e0f8 100%); border:6px solid #5a4a3a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,255,.3); }
.scn-watson-offers-to-follow .curtain-left { position:absolute; top:10%; left:10%; width:18%; height:70%; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius:0 8% 8% 0; animation: wof-curtain 8s ease-in-out infinite alternate; transform-origin: left; }
.scn-watson-offers-to-follow .curtain-right { position:absolute; top:10%; right:10%; width:18%; height:70%; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius:8% 0 0 8%; animation: wof-curtain 8s ease-in-out infinite alternate-reverse; transform-origin: right; }
.scn-watson-offers-to-follow .holmes-silhouette { position:absolute; bottom:20%; left:20%; width:10%; height:40%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wof-figure 10s ease-in-out infinite; }
.scn-watson-offers-to-follow .watson-silhouette { position:absolute; bottom:20%; left:38%; width:10%; height:40%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wof-figure 10s ease-in-out infinite 1s; }
.scn-watson-offers-to-follow .bicycle { position:absolute; bottom:15%; right:20%; width:18%; height:30%; background: radial-gradient(circle at 50% 60%, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 0 0; clip-path: polygon(20% 0, 80% 0, 90% 100%, 10% 100%); animation: wof-bike 6s ease-in-out infinite; }
.scn-watson-offers-to-follow .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #b0a080 0%, #8a7050 100%); }
@keyframes wof-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1.05); } }
@keyframes wof-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes wof-bike { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

.scn-holmes-blank-day {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 80%, #8a5a3a 0%, transparent 60%);
}
.scn-holmes-blank-day .fireplace { position:absolute; bottom:10%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
.scn-holmes-blank-day .armchair { position:absolute; bottom:12%; left:25%; width:30%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-holmes-blank-day .holmes-sitting { position:absolute; bottom:14%; left:28%; width:18%; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hbd-figure 12s ease-in-out infinite; }
.scn-holmes-blank-day .map { position:absolute; bottom:5%; left:40%; width:20%; height:15%; background: linear-gradient(135deg, #c0b090 0%, #a08060 100%); transform: rotate(10deg); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: hbd-map 8s ease-in-out infinite; }
.scn-holmes-blank-day .mantle { position:absolute; top:40%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:4px; }
.scn-holmes-blank-day .fire-glow { position:absolute; bottom:25%; left:45%; width:15%; height:20%; background: radial-gradient(ellipse, #c08040 0%, #8a5020 50%, transparent 80%); filter: blur(10px); animation: hbd-glow 3s ease-in-out infinite alternate; }
.scn-holmes-blank-day .smoke { position:absolute; bottom:40%; left:40%; width:8%; height:20%; background: radial-gradient(ellipse, rgba(200,180,160,.4) 0%, transparent 80%); filter: blur(6px); animation: hbd-smoke 10s linear infinite; }
@keyframes hbd-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes hbd-map { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(12deg) translateX(3px); } 100% { transform: rotate(8deg) translateX(-2px); } }
@keyframes hbd-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.9); } }
@keyframes hbd-smoke { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-20px) scale(1.5); opacity:0.3; } 100% { transform: translateY(-40px) scale(2); opacity:0; } }

.scn-telegram-from-overton {
  background: linear-gradient(180deg, #e8dcc0 0%, #d4c8a8 40%, #c0b090 100%), radial-gradient(ellipse at 40% 70%, #f0e0c0 0%, transparent 60%);
}
.scn-telegram-from-overton .desk { position:absolute; bottom:8%; left:8%; right:8%; height:35%; background: linear-gradient(180deg, #8a7050 0%, #5a4a2a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); }
.scn-telegram-from-overton .telegram { position:absolute; bottom:28%; left:40%; width:12%; height:15%; background: #f0e8d0; transform: rotate(3deg); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tfo-telegram 5s ease-in-out infinite; }
.scn-telegram-from-overton .lamp { position:absolute; bottom:20%; left:55%; width:10%; height:20%; background: linear-gradient(180deg, #c0a080 0%, #8a7050 100%); border-radius:20% 20% 40% 40%; }
.scn-telegram-from-overton .dog-silhouette { position:absolute; bottom:10%; left:25%; width:12%; height:22%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: tfo-dog 4s ease-in-out infinite; }
.scn-telegram-from-overton .chair { position:absolute; bottom:8%; right:15%; width:15%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20%; }
.scn-telegram-from-overton .book { position:absolute; bottom:20%; left:20%; width:8%; height:12%; background: #4a3a2a; transform: rotate(-10deg); border-radius:2px; box-shadow: 2px 2px 4px rgba(0,0,0,.3); }
.scn-telegram-from-overton .lamp-glow { position:absolute; bottom:38%; left:52%; width:20%; height:30%; background: radial-gradient(ellipse, #ffd080 0%, #c08040 40%, transparent 70%); filter: blur(8px); animation: tfo-glow 2s ease-in-out infinite alternate; }
@keyframes tfo-telegram { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(1px); } }
@keyframes tfo-dog { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes tfo-glow { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }

.scn-milverton-arrives {
  background: linear-gradient(180deg, #1a0e08 0%, #2d1a10 40%, #4a2a18 70%, #3a1f12 100%), radial-gradient(ellipse at 50% 30%, #ff8833 0%, transparent 60%);
}
.scn-milverton-arrives .fire-glow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: radial-gradient(ellipse at 30% 100%, #ff6a00 0%, #cc4400 30%, transparent 70%);
  animation: mv1-fire 2s ease-in-out infinite alternate;
}
.scn-milverton-arrives .lantern-beam {
  position: absolute; bottom: 20%; left: 45%; width: 80px; height: 100px;
  background: linear-gradient(135deg, rgba(255,200,100,0.8) 0%, rgba(255,200,100,0) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: mv1-lantern 4s ease-in-out infinite;
}
.scn-milverton-arrives .holmes-figure {
  position: absolute; bottom: 0; left: 40%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #0d0a08 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: mv1-holmes 6s ease-in-out infinite;
}
.scn-milverton-arrives .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #2a1a12 0%, #3a2a1a 50%, transparent 100%);
  border-radius: 0 30% 30% 0;
  animation: mv1-curtain 8s ease-in-out infinite alternate;
}
.scn-milverton-arrives .milverton-shadow {
  position: absolute; bottom: 10%; right: 10%; width: 50px; height: 120px;
  background: rgba(10,5,3,0.7);
  border-radius: 40% 40% 20% 20%;
  filter: blur(4px);
  animation: mv1-shadow 3s ease-in-out infinite;
}
.scn-milverton-arrives .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0705 100%);
}

@keyframes mv1-fire {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes mv1-lantern {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(5px); }
  100% { transform: rotate(-2deg) translateX(-2px); }
}
@keyframes mv1-holmes {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mv1-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes mv1-shadow {
  0% { transform: translateY(0) scaleY(1); opacity: 0.6; }
  50% { transform: translateY(-5px) scaleY(1.1); opacity: 0.9; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.7; }
}

.scn-watching-milverton {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d5b0 40%, #dcc49a 100%), radial-gradient(ellipse at 70% 50%, #fff4e0 0%, transparent 60%);
}
.scn-watching-milverton .bright-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fff8e7 0%, #e8d5b0 100%);
  animation: mv2-bright 10s ease-in-out infinite alternate;
}
.scn-watching-milverton .curtain-slit {
  position: absolute; top: 0; left: 50%; width: 40%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, #2a1a12 20%, #2a1a12 80%, transparent 100%);
  clip-path: polygon(48% 0, 52% 0, 52% 100%, 48% 100%);
}
.scn-watching-milverton .silhouette-holmes {
  position: absolute; bottom: 0; left: 45%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a1410 0%, #2a2218 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: mv2-peep 5s ease-in-out infinite;
}
.scn-watching-milverton .silhouette-watson {
  position: absolute; bottom: 0; left: 52%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #1a1410 0%, #2a2218 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: mv2-peep 5s ease-in-out infinite 0.5s;
}
.scn-watching-milverton .desk {
  position: absolute; bottom: 10%; right: 10%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-watching-milverton .lamp {
  position: absolute; bottom: 30%; right: 25%; width: 12px; height: 20px;
  background: radial-gradient(circle, #ffd580 0%, #ccaa50 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,213,128,0.6);
  animation: mv2-lamp 3s ease-in-out infinite alternate;
}

@keyframes mv2-bright {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mv2-peep {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes mv2-lamp {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 15px 5px rgba(255,213,128,0.4); }
  50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 25px 10px rgba(255,213,128,0.7); }
  100% { transform: scale(0.98); opacity: 0.9; box-shadow: 0 0 18px 6px rgba(255,213,128,0.5); }
}

.scn-the-woman-arrives {
  background: linear-gradient(180deg, #e8ddd0 0%, #d4c4b0 40%, #bfaa90 100%), radial-gradient(ellipse at 60% 40%, #fff8e7 0%, transparent 70%);
}
.scn-the-woman-arrives .wall-bright {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f5ede0 0%, #e0d0b8 100%);
}
.scn-the-woman-arrives .safe {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-the-woman-arrives .safe-door {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(90deg, #2a2218 0%, #1a1410 50%, transparent 100%);
  border-radius: 4px;
  clip-path: polygon(0 0, 60% 0, 60% 100%, 0 100%);
  animation: mv3-door 4s ease-in-out infinite alternate;
}
.scn-the-woman-arrives .light-streak {
  position: absolute; bottom: 25%; left: 48%; width: 120px; height: 120px;
  background: linear-gradient(135deg, rgba(255,240,200,0.8) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%);
  animation: mv3-streak 6s ease-in-out infinite;
}
.scn-the-woman-arrives .woman-silhouette {
  position: absolute; bottom: 0; right: 20%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #1a1410 0%, #2a2218 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: mv3-woman 8s ease-in-out infinite;
}
.scn-the-woman-arrives .holmes-hand {
  position: absolute; bottom: 20%; left: 35%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-20deg);
  animation: mv3-hand 3s ease-in-out infinite alternate;
}

@keyframes mv3-door {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(15deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes mv3-streak {
  0% { opacity: 0.6; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(5px); }
  100% { opacity: 0.7; transform: translateX(-2px); }
}
@keyframes mv3-woman {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mv3-hand {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(2px); }
  100% { transform: rotate(-22deg) translateX(-1px); }
}

.scn-the-murder {
  background: linear-gradient(180deg, #2a2018 0%, #3a2e24 40%, #4a3c30 100%), radial-gradient(ellipse at 50% 60%, #fff4e0 0%, transparent 70%);
}
.scn-the-murder .room-light {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, #f5e6d0 0%, #3a2e24 100%);
  animation: mv4-light 5s ease-in-out infinite alternate;
}
.scn-the-murder .woman-arm {
  position: absolute; bottom: 20%; right: 20%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #2a2218 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(-45deg) translateY(-20px);
  animation: mv4-arm 2s ease-in-out infinite;
}
.scn-the-murder .milverton-shadow {
  position: absolute; bottom: 0; left: 10%; width: 60px; height: 130px;
  background: rgba(10,5,3,0.8);
  border-radius: 40% 40% 20% 20%;
  filter: blur(5px);
  animation: mv4-shadow 4s ease-in-out infinite;
}
.scn-the-murder .chair-over {
  position: absolute; bottom: 0; left: 50%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(15deg) translateX(-20px);
  animation: mv4-chair 6s ease-in-out infinite;
}
.scn-the-murder .table {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-the-murder .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, #1a1410 100%);
}

@keyframes mv4-light {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes mv4-arm {
  0% { transform: rotate(-45deg) translateY(-20px); }
  50% { transform: rotate(-40deg) translateY(-25px); }
  100% { transform: rotate(-50deg) translateY(-18px); }
}
@keyframes mv4-shadow {
  0% { transform: translateY(0) scaleY(1); opacity: 0.7; }
  50% { transform: translateY(-8px) scaleY(1.1); opacity: 1; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.8; }
}
@keyframes mv4-chair {
  0% { transform: rotate(15deg) translateX(-20px); }
  50% { transform: rotate(20deg) translateX(-25px); }
  100% { transform: rotate(10deg) translateX(-15px); }
}

.scn-godfrey-staunton-found {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #1a0e1a 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 70%);
}
.scn-godfrey-staunton-found .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2028 0%, #1c141c 100%); }
.scn-godfrey-staunton-found .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%); border-radius:30% 30% 0 0/20% 20% 0 0; }
.scn-godfrey-staunton-found .window { position:absolute; top:15%; left:60%; width:20%; height:40%; background: linear-gradient(135deg, #0a0a1a 0%, #1a1a3a 100%); border:4px solid #4a3a2a; box-shadow: inset 0 0 20px rgba(0,0,0,.8); border-radius:4px; }
.scn-godfrey-staunton-found .table { position:absolute; bottom:25%; left:30%; width:35%; height:22%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-godfrey-staunton-found .candle { position:absolute; bottom:48%; left:45%; width:4%; height:12%; background: linear-gradient(180deg, #e8d0a0 0%, #c8a060 80%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 30px 8px rgba(200,160,96,.4), 0 0 60px 20px rgba(200,160,96,.2); animation: gsf-candle 3s ease-in-out infinite alternate; }
.scn-godfrey-staunton-found .figure-dazed { position:absolute; bottom:15%; left:40%; width:14%; height:40%; background: linear-gradient(180deg, #1a121a 0%, #0a060a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: gsf-fig 5s ease-in-out infinite; }
.scn-godfrey-staunton-found .shadow-figure { position:absolute; bottom:15%; left:55%; width:12%; height:36%; background: linear-gradient(180deg, #1a0e0e 0%, #0a0404 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.6; filter:blur(4px); animation: gsf-shadow 7s ease-in-out infinite; }
.scn-godfrey-staunton-found .dust { position:absolute; inset:0; background: radial-gradient(circle at 30% 50%, rgba(200,180,140,.08) 0%, transparent 60%); pointer-events:none; animation: gsf-dust 12s linear infinite; }
@keyframes gsf-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.7; box-shadow:0 0 20px 4px rgba(200,160,96,.3); } 50% { transform: scaleY(1.05) scaleX(0.95); opacity:1; box-shadow:0 0 40px 12px rgba(200,160,96,.5); } 100% { transform: scaleY(0.98) scaleX(1.02); opacity:.8; box-shadow:0 0 25px 6px rgba(200,160,96,.35); } }
@keyframes gsf-fig { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2%) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2%) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes gsf-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5%) scaleX(0.9); } 100% { transform: translateX(-3%) scaleX(1.05); } }
@keyframes gsf-dust { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.3; transform: scale(1); } }

.scn-armstrong-arrives {
  background: linear-gradient(180deg, #1a1a28 0%, #242030 50%, #1c1820 100%),
              radial-gradient(ellipse at 60% 40%, #2a2230 0%, transparent 60%);
}
.scn-armstrong-arrives .bg-dark { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #0e0a12 0%, #1a1620 100%); }
.scn-armstrong-arrives .stair-rail { position:absolute; bottom:20%; left:0; width:100%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius:0 0 10% 10%; box-shadow:0 -4px 8px rgba(0,0,0,.5); }
.scn-armstrong-arrives .lamp { position:absolute; top:30%; right:20%; width:6%; height:10%; background: radial-gradient(circle at 50% 30%, #f0d070 0%, #b08a40 80%); border-radius:50%; box-shadow:0 0 40px 10px rgba(200,160,80,.3); animation: aa-lamp 4s ease-in-out infinite alternate; }
.scn-armstrong-arrives .figure-front { position:absolute; bottom:10%; left:30%; width:15%; height:50%; background: linear-gradient(180deg, #1e1618 0%, #0a0608 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: aa-fight 3s ease-in-out infinite; }
.scn-armstrong-arrives .figure-back { position:absolute; bottom:12%; left:55%; width:13%; height:46%; background: linear-gradient(180deg, #181418 0%, #080408 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: aa-fight 3.5s ease-in-out infinite reverse; }
.scn-armstrong-arrives .shadow-stair { position:absolute; bottom:20%; left:0; width:100%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); pointer-events:none; }
.scn-armstrong-arrives .glow-cone { position:absolute; top:30%; left:20%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(240,208,112,.15) 0%, transparent 70%); pointer-events:none; animation: aa-glow 5s ease-in-out infinite alternate; }
@keyframes aa-lamp { 0% { transform: scaleY(1); box-shadow:0 0 30px 6px rgba(200,160,80,.2); } 50% { transform: scaleY(1.1) scaleX(0.95); box-shadow:0 0 50px 14px rgba(200,160,80,.4); } 100% { transform: scaleY(0.95); box-shadow:0 0 35px 8px rgba(200,160,80,.25); } }
@keyframes aa-fight { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8%) rotate(5deg); } 50% { transform: translateX(-4%) rotate(-3deg); } 75% { transform: translateX(6%) rotate(4deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes aa-glow { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }

.scn-armstrong-relents {
  background: linear-gradient(180deg, #f5e8d0 0%, #e8d4b8 40%, #d4b898 100%),
              radial-gradient(ellipse at 50% 80%, #f0d8b0 0%, transparent 70%);
}
.scn-armstrong-relents .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,240,210,.1) 0%, rgba(200,160,120,.05) 100%); }
.scn-armstrong-relents .fireplace { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:40%; height:60%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius:10% 10% 4% 4%; box-shadow:inset 0 0 30px rgba(0,0,0,.3); }
.scn-armstrong-relents .mantle { position:absolute; bottom:65%; left:50%; transform:translateX(-50%); width:42%; height:6%; background: linear-gradient(180deg, #a08060 0%, #705030 100%); border-radius:4px; }
.scn-armstrong-relents .chair { position:absolute; bottom:5%; left:20%; width:25%; height:40%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow:0 4px 12px rgba(0,0,0,.4); }
.scn-armstrong-relents .figure-a { position:absolute; bottom:8%; left:25%; width:14%; height:55%; background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ar-turn 6s ease-in-out infinite; }
.scn-armstrong-relents .figure-b { position:absolute; bottom:8%; left:55%; width:14%; height:55%; background: linear-gradient(180deg, #3a2a22 0%, #1a1010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ar-turn 6s ease-in-out infinite reverse; }
.scn-armstrong-relents .handshake { position:absolute; bottom:40%; left:45%; width:10%; height:8%; background: linear-gradient(180deg, #8a7050 0%, #4a3a2a 100%); border-radius:40% 40% 20% 20%; box-shadow:0 2px 6px rgba(0,0,0,.3); animation: ar-shake 2s ease-in-out infinite; }
.scn-armstrong-relents .fire-glow { position:absolute; bottom:10%; left:45%; width:10%; height:20%; background: radial-gradient(circle, #f0c080 0%, #d08840 60%, transparent 100%); box-shadow:0 0 60px 20px rgba(240,192,128,.5); animation: ar-glow 3s ease-in-out infinite alternate; }
@keyframes ar-turn { 0% { transform: translateX(0) rotate(0) scaleY(1); } 25% { transform: translateX(5%) rotate(6deg) scaleY(1.02); } 50% { transform: translateX(-2%) rotate(-3deg) scaleY(0.98); } 75% { transform: translateX(4%) rotate(4deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(0) scaleY(1); } }
@keyframes ar-shake { 0% { transform: rotate(0); } 20% { transform: rotate(4deg); } 40% { transform: rotate(-4deg); } 60% { transform: rotate(3deg); } 80% { transform: rotate(-3deg); } 100% { transform: rotate(0); } }
@keyframes ar-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:.7; transform: scale(0.9); } }

.scn-secret-marriage {
  background: linear-gradient(180deg, #f0ead8 0%, #e0d4bc 40%, #c8b898 100%),
              radial-gradient(ellipse at 50% 50%, #f8f0e0 0%, transparent 80%);
}
.scn-secret-marriage .room-light { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,250,230,.2) 0%, rgba(180,160,120,.05) 100%); }
.scn-secret-marriage .desk { position:absolute; bottom:5%; left:30%; width:40%; height:25%; background: linear-gradient(180deg, #a0806c 0%, #6a5040 100%); border-radius:4% 4% 2% 2%; box-shadow:0 4px 12px rgba(0,0,0,.3); }
.scn-secret-marriage .document { position:absolute; bottom:16%; left:45%; width:8%; height:10%; background: linear-gradient(135deg, #f0e8d0 0%, #d0c0a0 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.2); animation: sm-doc 8s ease-in-out infinite; }
.scn-secret-marriage .vase { position:absolute; bottom:12%; right:25%; width:5%; height:15%; background: linear-gradient(180deg, #8a6a5a 0%, #4a3a2a 100%); border-radius:30% 30% 20% 20%; }
.scn-secret-marriage .curtain-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, #d0b898 0%, #a0886c 100%); border-radius:0 0 20% 0; box-shadow:4px 0 12px rgba(0,0,0,.2); animation: sm-curtain 15s ease-in-out infinite alternate; }
.scn-secret-marriage .curtain-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #d0b898 0%, #a0886c 100%); border-radius:0 0 0 20%; box-shadow:-4px 0 12px rgba(0,0,0,.2); animation: sm-curtain 15s ease-in-out infinite alternate-reverse; }
.scn-secret-marriage .figure-couple { position:absolute; bottom:5%; left:45%; width:10%; height:30%; transform:translateX(-50%); background: linear-gradient(180deg, #2a221a 0%, #0e0a08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: sm-couple 10s ease-in-out infinite; }
.scn-secret-marriage .sunbeam { position:absolute; top:10%; left:30%; width:15%; height:80%; background: linear-gradient(180deg, rgba(255,250,200,.25) 0%, transparent 100%); transform:rotate(20deg); filter:blur(6px); animation: sm-beam 6s ease-in-out infinite alternate; }
@keyframes sm-doc { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2%) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sm-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1.05); } }
@keyframes sm-couple { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-1%); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes sm-beam { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

/* pearl-found */
.scn-pearl-found {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 60%, #d4bea0 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 70%);
}
.scn-pearl-found .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #f0e4cc 0%, #e0c8a8 100%); }
.scn-pearl-found .desk   { position:absolute; bottom:18%; left:25%; right:25%; height:25%; background: linear-gradient(180deg, #b07c5a 0%, #8b5e3c 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.3); }
.scn-pearl-found .safe   { position:absolute; bottom:30%; left:40%; right:40%; height:22%; background: linear-gradient(180deg, #6b5340 0%, #4a3628 100%); border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pf-safe 20s ease-in-out infinite; }
.scn-pearl-found .pearl  { position:absolute; bottom:44%; left:47%; width:12px; height:12px; background: radial-gradient(circle at 30% 30%, #fff8e8 0%, #f0d8a0 60%, #c8a868 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(240,216,160,.6), 0 0 40px 12px rgba(240,216,160,.3); animation: pf-pearl 4s ease-in-out infinite alternate; }
.scn-pearl-found .window-light { position:absolute; top:8%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, rgba(255,248,232,0.4) 0%, transparent 100%); border-radius: 0 0 40% 40%; animation: pf-window 8s ease-in-out infinite alternate; }
.scn-pearl-found .bookshelf-left { position:absolute; bottom:20%; left:5%; width:18%; height:50%; background: linear-gradient(180deg, #8b6b4a 0%, #6b4f34 100%); border-radius: 2%; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); animation: pf-shelf 14s ease-in-out infinite; }
.scn-pearl-found .bookshelf-right{ position:absolute; bottom:20%; right:5%; width:18%; height:50%; background: linear-gradient(180deg, #7a5e40 0%, #5a3f2c 100%); border-radius: 2%; box-shadow: inset 4px 0 8px rgba(0,0,0,.3); animation: pf-shelf 12s ease-in-out infinite reverse; }
@keyframes pf-safe   { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pf-pearl  { 0% { transform: scale(1) rotate(0deg); opacity:0.9; } 50% { transform: scale(1.1) rotate(5deg); opacity:1; } 100% { transform: scale(1) rotate(-5deg); opacity:0.9; } }
@keyframes pf-window { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes pf-shelf  { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

/* holmes-touched */
.scn-holmes-touched {
  background:
    linear-gradient(180deg, #d4a868 0%, #b87c44 40%, #8a5a30 100%),
    radial-gradient(ellipse at 50% 80%, #f0c870 0%, transparent 60%);
}
.scn-holmes-touched .study-bg  { position:absolute; inset:0; background: linear-gradient(135deg, #c89860 0%, #a07040 100%); }
.scn-holmes-touched .fireplace{ position:absolute; bottom:15%; left:30%; width:40%; height:40%; background: linear-gradient(180deg, #6b3a1e 0%, #4a2812 100%); border-radius: 20% 20% 6% 6%; box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-holmes-touched .mantel   { position:absolute; bottom:45%; left:28%; width:44%; height:8%; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-holmes-touched .holmes-figure { position:absolute; bottom:22%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-holmes 6s ease-in-out infinite; }
.scn-holmes-touched .watson-figure{ position:absolute; bottom:22%; right:38%; width:22px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-watson 7s ease-in-out infinite; }
.scn-holmes-touched .pearl-glow   { position:absolute; bottom:44%; left:48%; width:10px; height:10px; background: radial-gradient(circle at 30% 30%, #fff0c0 0%, #f0d080 60%, #d0a050 100%); border-radius:50%; box-shadow: 0 0 24px 8px rgba(240,208,128,.7), 0 0 48px 16px rgba(240,208,128,.3); animation: ht-pearl 3s ease-in-out infinite alternate; }
.scn-holmes-touched .lamplight   { position:absolute; top:12%; left:20%; right:20%; height:50%; background: radial-gradient(ellipse at 50% 0%, rgba(255,220,140,0.3) 0%, transparent 70%); animation: ht-lamp 5s ease-in-out infinite alternate; }
.scn-holmes-touched .armchair    { position:absolute; bottom:10%; left:10%; width:30%; height:35%; background: linear-gradient(180deg, #6b4a3a 0%, #4a3020 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 8px 12px rgba(0,0,0,.4); animation: ht-chair 12s ease-in-out infinite; }
@keyframes ht-holmes { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ht-watson { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ht-pearl  { 0% { transform: scale(1) rotate(0deg); opacity:0.8; } 50% { transform: scale(1.15) rotate(10deg); opacity:1; } 100% { transform: scale(1) rotate(-10deg); opacity:0.9; } }
@keyframes ht-lamp   { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes ht-chair  { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }

/* conk-singleton-case */
.scn-conk-singleton-case {
  background:
    linear-gradient(180deg, #f0e4d0 0%, #e0c8b0 60%, #c8aa88 100%),
    radial-gradient(ellipse at 50% 40%, #fff8f0 0%, transparent 70%);
}
.scn-conk-singleton-case .library-bg { position:absolute; inset:0; background: linear-gradient(135deg, #e8d8c0 0%, #d0b898 100%); }
.scn-conk-singleton-case .bookshelf   { position:absolute; bottom:20%; left:5%; right:5%; height:55%; background: linear-gradient(180deg, #8b6b4a 0%, #6b4f34 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.3); animation: cs-shelf 16s ease-in-out infinite; }
.scn-conk-singleton-case .table       { position:absolute; bottom:12%; left:25%; right:25%; height:22%; background: linear-gradient(180deg, #b08050 0%, #906840 100%); border-radius: 6% 6% 0 0; box-shadow: 0 6px 10px rgba(0,0,0,.4); }
.scn-conk-singleton-case .magnifying-glass { position:absolute; bottom:30%; left:42%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #f0f0e8 0%, #c0b8a0 60%, #a09078 100%); border-radius:50%; border: 3px solid #7a6a58; box-shadow: 0 4px 6px rgba(0,0,0,.2); animation: cs-glass 5s ease-in-out infinite; }
.scn-conk-singleton-case .pipe        { position:absolute; bottom:32%; right:38%; width:4px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform: rotate(-20deg); animation: cs-pipe 4s ease-in-out infinite; }
.scn-conk-singleton-case .window      { position:absolute; top:10%; left:30%; right:30%; height:35%; background: linear-gradient(180deg, #e8e0d0 0%, #d0c0a8 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; box-shadow: inset 0 0 20px rgba(0,0,0,.1); }
.scn-conk-singleton-case .window-light{ position:absolute; top:10%; left:30%; right:30%; height:35%; background: radial-gradient(ellipse at 50% 30%, rgba(255,248,240,0.4) 0%, transparent 70%); animation: cs-light 12s ease-in-out infinite alternate; }
@keyframes cs-shelf  { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cs-glass  { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(15deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes cs-pipe   { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.05); } 100% { transform: rotate(-20deg) scaleY(1); } }
@keyframes cs-light  { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* university-town-arrival */
.scn-university-town-arrival {
  background:
    linear-gradient(180deg, #9a9a9a 0%, #7a7a7a 40%, #5a5a5a 100%),
    radial-gradient(ellipse at 50% 100%, #b0b0a0 0%, transparent 70%);
}
.scn-university-town-arrival .sky-overcast { position:absolute; inset:0; background: linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 60%, #4a4a4a 100%); }
.scn-university-town-arrival .street       { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-university-town-arrival .building-left  { position:absolute; bottom:20%; left:5%; width:35%; height:60%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset -8px 0 12px rgba(0,0,0,.3); }
.scn-university-town-arrival .building-right { position:absolute; bottom:20%; right:5%; width:35%; height:55%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 8px 0 12px rgba(0,0,0,.3); }
.scn-university-town-arrival .cobblestones  { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: repeating-linear-gradient(90deg, #5a5a5a 0px, #4a4a4a 4px, #3a3a3a 8px, #4a4a4a 12px); border-radius: 10% 10% 0 0; filter: blur(2px); animation: uta-cobble 20s linear infinite; }
.scn-university-town-arrival .lamppost      { position:absolute; bottom:25%; left:48%; width:6px; height:40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 20%; transform-origin: bottom; }
.scn-university-town-arrival .drizzle       { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, rgba(200,200,200,0.3) 1px, transparent 4px); background-size: 100% 6px; animation: uta-rain 0.8s linear infinite; }
.scn-university-town-arrival .figure-umbrella{ position:absolute; bottom:5%; left:20%; width:16px; height:40px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uta-walk 6s ease-in-out infinite; }
.scn-university-town-arrival .figure-umbrella::before { content:''; position:absolute; top:-20px; left:-12px; width:40px; height:20px; background: radial-gradient(ellipse at 50% 100%, #4a4a4a 0%, #2a2a2a 100%); border-radius: 50% 50% 0 0; transform: rotate(0deg); animation: uta-umbrella 4s ease-in-out infinite; }
@keyframes uta-cobble  { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }
@keyframes uta-rain    { 0% { background-position: 0 0; } 100% { background-position: 0 6px; } }
@keyframes uta-walk    { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes uta-umbrella { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-direction-of-tracks {
  background: 
    linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 40%, #3a4a4a 100%),
    radial-gradient(ellipse at 50% 100%, #4a5a5a 0%, transparent 70%);
  animation: dot-sky 20s ease-in-out infinite alternate;
}
.scn-direction-of-tracks .sky { 
  position: absolute; inset: 0 0 30% 0; 
  background: linear-gradient(180deg, #8a9a9a 0%, #5a6a6a 80%); 
  animation: dot-cloud 30s linear infinite; 
  opacity: 0.6; 
}
.scn-direction-of-tracks .hills { 
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%; 
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); 
  border-radius: 60% 40% 0 0 / 80% 70% 0 0; 
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); 
  animation: dot-hills 15s ease-in-out infinite alternate; 
}
.scn-direction-of-tracks .ground { 
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%; 
  background: linear-gradient(0deg, #5a6a3a 0%, #7a8a5a 100%); 
  border-radius: 20% 20% 0 0; 
}
.scn-direction-of-tracks .track-left {
  position: absolute; bottom: 20%; left: 20%; width: 8px; height: 40%; 
  background: linear-gradient(180deg, transparent 10%, #4a4a3a 15%, #4a4a3a 85%, transparent 90%);
  transform: rotate(15deg); opacity: 0.6; 
  animation: dot-track 5s ease-in-out infinite alternate; 
}
.scn-direction-of-tracks .track-right {
  position: absolute; bottom: 22%; left: 30%; width: 8px; height: 35%; 
  background: linear-gradient(180deg, transparent 10%, #4a4a3a 15%, #4a4a3a 85%, transparent 90%);
  transform: rotate(-10deg); opacity: 0.5; 
  animation: dot-track 6s ease-in-out infinite alternate-reverse; 
}
.scn-direction-of-tracks .figure { 
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 40px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: dot-figure 8s ease-in-out infinite; 
}
.scn-direction-of-tracks .cane { 
  position: absolute; bottom: 20%; left: 52%; width: 4px; height: 30px; 
  background: #3a2a1a; border-radius: 2px; 
  transform: rotate(15deg); 
  animation: dot-cane 8s ease-in-out infinite; 
}
@keyframes dot-sky { 
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } 
}
@keyframes dot-cloud { 
  0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } 
}
@keyframes dot-hills { 
  0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } 
}
@keyframes dot-track { 
  0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } 
}
@keyframes dot-figure { 
  0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(5px) rotate(2deg); } 60% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } 
}
@keyframes dot-cane { 
  0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(20deg) translateX(3px); } 100% { transform: rotate(10deg) translateX(0); } 
}

.scn-hopkins-investigation {
  background: 
    linear-gradient(180deg, #d8c8b0 0%, #b8a898 50%, #9a8a7a 100%),
    radial-gradient(ellipse at 50% 50%, #e0d0c0 0%, transparent 70%);
}
.scn-hopkins-investigation .wall { 
  position: absolute; inset: 0 0 30% 0; 
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); 
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.1); 
}
.scn-hopkins-investigation .floor { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; 
  background: linear-gradient(0deg, #8a7a6a 0%, #a89880 100%); 
}
.scn-hopkins-investigation .matting { 
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 15%; 
  background: repeating-linear-gradient(90deg, #b8a090 0px, #a89880 4px, #c8b8a0 8px); 
  opacity: 0.5; 
}
.scn-hopkins-investigation .door { 
  position: absolute; bottom: 30%; right: 15%; width: 60px; height: 100px; 
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); 
  border-radius: 4px 4px 0 0; 
  box-shadow: -4px 0 8px rgba(0,0,0,0.3); 
  animation: hop-door 12s ease-in-out infinite; 
}
.scn-hopkins-investigation .table { 
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 30px; 
  background: linear-gradient(0deg, #5a4a3a 0%, #7a6a5a 100%); 
  border-radius: 4px; 
}
.scn-hopkins-investigation .lamp { 
  position: absolute; bottom: 45%; left: 35%; width: 12px; height: 20px; 
  background: radial-gradient(circle, #f0e0c0 0%, #d0c0a0 70%); 
  border-radius: 50% 50% 20% 20%; 
  box-shadow: 0 0 30px 10px #e0c080, 0 0 60px 20px rgba(224,192,128,0.3); 
  animation: hop-lamp 4s ease-in-out infinite alternate; 
}
.scn-hopkins-investigation .figure { 
  position: absolute; bottom: 22%; left: 20%; width: 18px; height: 38px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: hop-figure 6s ease-in-out infinite; 
}
@keyframes hop-door { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hop-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 5px #d0b070; } 50% { opacity: 1; box-shadow: 0 0 40px 15px #e0c080; } 100% { opacity: 0.85; box-shadow: 0 0 25px 8px #d0b070; } }
@keyframes hop-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-bureau-details {
  background: 
    linear-gradient(180deg, #c8b8a0 0%, #b0a090 50%, #988878 100%),
    radial-gradient(ellipse at 30% 20%, #e0d0c0 0%, transparent 60%);
}
.scn-bureau-details .wall { 
  position: absolute; inset: 0 0 25% 0; 
  background: linear-gradient(180deg, #d8c8b0 0%, #b0a090 100%); 
}
.scn-bureau-details .floor { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; 
  background: linear-gradient(0deg, #8a7a6a 0%, #a89880 100%); 
}
.scn-bureau-details .bureau { 
  position: absolute; bottom: 20%; left: 25%; width: 100px; height: 70px; 
  background: linear-gradient(0deg, #5a4a3a 0%, #7a6a5a 100%); 
  border-radius: 4px; 
  box-shadow: 0 8px 16px rgba(0,0,0,0.3); 
  animation: bur-shift 12s ease-in-out infinite; 
}
.scn-bureau-details .drawer-open { 
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 20px; 
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); 
  border-radius: 0 0 4px 4px; 
  transform: translateY(10px); 
  animation: bur-drawer 8s ease-in-out infinite alternate; 
}
.scn-bureau-details .cupboard { 
  position: absolute; bottom: 20%; right: 30%; width: 60px; height: 70px; 
  background: linear-gradient(0deg, #4a3a2a 0%, #6a5a4a 100%); 
  border-radius: 4px; 
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4); 
}
.scn-bureau-details .papers { 
  position: absolute; bottom: 40%; left: 45%; width: 30px; height: 20px; 
  background: linear-gradient(180deg, #e8d8c0 0%, #d0c0a8 100%); 
  border-radius: 2px; 
  transform: rotate(5deg); 
  animation: bur-paper 10s ease-in-out infinite; 
}
.scn-bureau-details .chair { 
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 40px; 
  background: #5a4a3a; 
  border-radius: 4px 4px 0 0; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.3); 
}
@keyframes bur-shift { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bur-drawer { 0% { transform: translateY(10px); } 50% { transform: translateY(12px); } 100% { transform: translateY(10px); } }
@keyframes bur-paper { 0% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(3deg) translateX(0); } }

.scn-knife-away-from-body {
  background: 
    linear-gradient(180deg, #b8a898 0%, #a09080 50%, #887868 100%),
    radial-gradient(ellipse at 50% 80%, #c8b8a8 0%, transparent 60%);
}
.scn-knife-away-from-body .floor { 
  position: absolute; inset: 0; 
  background: linear-gradient(0deg, #8a7a6a 0%, #a09080 100%); 
}
.scn-knife-away-from-body .body { 
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 60px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); 
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; 
  transform: rotate(15deg); 
  animation: kn-body 6s ease-in-out infinite; 
}
.scn-knife-away-from-body .knife { 
  position: absolute; bottom: 15%; left: 55%; width: 30px; height: 8px; 
  background: linear-gradient(90deg, #a0a0a0 0%, #c8c8c8 50%, #a0a0a0 100%); 
  border-radius: 2px 50% 50% 2px; 
  transform: rotate(-30deg); 
  animation: kn-knife 4s ease-in-out infinite alternate; 
}
.scn-knife-away-from-body .pool { 
  position: absolute; bottom: 10%; left: 25%; width: 50px; height: 20px; 
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a1012 70%, transparent 100%); 
  border-radius: 50%; 
  animation: kn-pool 5s ease-in-out infinite; 
}
.scn-knife-away-from-body .shadow { 
  position: absolute; bottom: 8%; left: 18%; width: 60px; height: 30px; 
  background: rgba(0,0,0,0.3); 
  border-radius: 50%; 
  filter: blur(8px); 
  animation: kn-shadow 6s ease-in-out infinite; 
}
.scn-knife-away-from-body .chair { 
  position: absolute; bottom: 15%; right: 15%; width: 30px; height: 50px; 
  background: #6a5a4a; 
  border-radius: 4px; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.3); 
}
@keyframes kn-body { 
  0% { transform: rotate(12deg) translateY(0); } 
  50% { transform: rotate(18deg) translateY(-2px); } 
  100% { transform: rotate(12deg) translateY(0); } 
}
@keyframes kn-knife { 
  0% { transform: rotate(-30deg) translateX(0); } 
  50% { transform: rotate(-25deg) translateX(2px); } 
  100% { transform: rotate(-30deg) translateX(0); } 
}
@keyframes kn-pool { 
  0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } 
}
@keyframes kn-shadow { 
  0% { transform: scaleX(1) scaleY(0.8); } 
  50% { transform: scaleX(0.95) scaleY(1); } 
  100% { transform: scaleX(1) scaleY(0.8); } 
}

.scn-nothing-in-papers { background: linear-gradient(180deg, #f5f0e8 0%, #e8e0d0 60%, #d0c8b8 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 80%); }
.scn-nothing-in-papers .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f2ece0 0%, #ded4c0 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-nothing-in-papers .window { position:absolute; top:8%; left:30%; width:25%; height:35%; background: radial-gradient(ellipse at center, #b8d8f0 0%, #a0c8e0 60%, #7aabca 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 30px rgba(255,255,255,.4), 0 0 40px rgba(160,200,224,.3); animation: np-window 8s ease-in-out infinite alternate; }
.scn-nothing-in-papers .desk { position:absolute; bottom:18%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 4% 4% 8% 8% / 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.15); }
.scn-nothing-in-papers .papers { position:absolute; bottom:20%; left:35%; width:20%; height:8%; background: #f0e8d8; border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,.1); animation: np-papers 12s ease-in-out infinite alternate; }
.scn-nothing-in-papers .lamp { position:absolute; bottom:16%; right:25%; width:16px; height:40px; background: linear-gradient(180deg, #d4b070 0%, #b09050 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 0 30px 10px rgba(210,180,100,.3), 0 0 60px 20px rgba(210,180,100,.15); animation: np-lamp 5s ease-in-out infinite alternate; }
.scn-nothing-in-papers .figure { position:absolute; bottom:19%; left:25%; width:14px; height:40px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: np-figure 10s ease-in-out infinite alternate; }
@keyframes np-window { 0% { opacity:.7; transform: scale(1) } 50% { opacity:.9; transform: scale(1.02) } 100% { opacity:.8; transform: scale(.98) } }
@keyframes np-papers { 0% { transform: rotate(-1deg) translateX(0) } 50% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(-.5deg) translateX(-1px) } }
@keyframes np-lamp { 0% { box-shadow: 0 0 20px 5px rgba(210,180,100,.2) } 50% { box-shadow: 0 0 50px 15px rgba(210,180,100,.4) } 100% { box-shadow: 0 0 30px 8px rgba(210,180,100,.25) } }
@keyframes np-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }

.scn-lord-mount-james-arrives { background: linear-gradient(180deg, #f2e8d8 0%, #d8ccb8 60%, #b8a898 100%), radial-gradient(ellipse at 30% 80%, #e0d0b8 0%, transparent 70%); }
.scn-lord-mount-james-arrives .doorway { position:absolute; top:0; left:20%; width:60%; height:100%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.6); clip-path: polygon(15% 0, 85% 0, 100% 100%, 0% 100%); }
.scn-lord-mount-james-arrives .figure { position:absolute; bottom:10%; left:40%; width:20px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mj-figure 2s ease-in-out infinite; }
.scn-lord-mount-james-arrives .hat { position:absolute; bottom:67%; left:38%; width:24px; height:16px; background: #1a1a2a; border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: mj-hat 2s ease-in-out infinite; }
.scn-lord-mount-james-arrives .cane { position:absolute; bottom:8%; left:44%; width:4px; height:50px; background: #1a1a1a; border-radius: 20%; transform-origin: bottom center; transform: rotate(8deg); animation: mj-cane 2s ease-in-out infinite; }
.scn-lord-mount-james-arrives .shadow { position:absolute; bottom:0; left:25%; width:50%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.2) 0%, transparent 70%); animation: mj-shadow 2s ease-in-out infinite; }
.scn-lord-mount-james-arrives .floor { position:absolute; bottom:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 20% 20% 0 0; }
@keyframes mj-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes mj-hat { 0% { transform: rotate(-3deg) translateX(0) } 25% { transform: rotate(4deg) translateX(3px) } 50% { transform: rotate(-2deg) translateX(-2px) } 75% { transform: rotate(2deg) translateX(1px) } 100% { transform: rotate(-3deg) translateX(0) } }
@keyframes mj-cane { 0% { transform: rotate(5deg) } 25% { transform: rotate(12deg) } 50% { transform: rotate(6deg) } 75% { transform: rotate(10deg) } 100% { transform: rotate(5deg) } }
@keyframes mj-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.3; transform: scaleX(1) } }

.scn-mount-james-questions { background: linear-gradient(180deg, #f2e8d8 0%, #d8ccb8 60%, #b8a898 100%), radial-gradient(ellipse at 60% 40%, #e0d0b8 0%, transparent 60%); }
.scn-mount-james-questions .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e8ddd0 0%, #d0c0a8 100%); border-radius: 0 0 30% 30% / 0 0 15% 15%; }
.scn-mount-james-questions .table { position:absolute; bottom:22%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 5% 5% 10% 10% / 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.2); }
.scn-mount-james-questions .lamp { position:absolute; bottom:25%; right:35%; width:14px; height:30px; background: linear-gradient(180deg, #d4b070 0%, #b09050 100%); border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%; box-shadow: 0 0 20px 8px rgba(210,180,100,.3); animation: mjq-lamp 4s ease-in-out infinite alternate; }
.scn-mount-james-questions .figure-left { position:absolute; bottom:18%; left:32%; width:16px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mjq-left 3s ease-in-out infinite; }
.scn-mount-james-questions .figure-right { position:absolute; bottom:18%; right:32%; width:16px; height:50px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mjq-right 3s ease-in-out infinite; }
.scn-mount-james-questions .shadow { position:absolute; bottom:0; left:30%; width:40%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.15) 0%, transparent 70%); animation: mjq-shadow 5s ease-in-out infinite alternate; }
@keyframes mjq-lamp { 0% { box-shadow: 0 0 15px 4px rgba(210,180,100,.2) } 50% { box-shadow: 0 0 35px 12px rgba(210,180,100,.4) } 100% { box-shadow: 0 0 20px 6px rgba(210,180,100,.25) } }
@keyframes mjq-left { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes mjq-right { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-8px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes mjq-shadow { 0% { opacity:.2; transform: scaleX(.95) } 50% { opacity:.4; transform: scaleX(1.05) } 100% { opacity:.2; transform: scaleX(.95) } }

.scn-miserly-concern { background: linear-gradient(180deg, #f2e8d8 0%, #d8ccb8 60%, #b8a898 100%), radial-gradient(ellipse at 70% 50%, #e0d0b8 0%, transparent 50%); }
.scn-miserly-concern .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-miserly-concern .figure { position:absolute; bottom:5%; left:25%; width:50%; height:80%; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius: 50% 50% 20% 20% / 40% 40% 10% 10%; clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); animation: mc-figure 2s ease-in-out infinite; }
.scn-miserly-concern .hand { position:absolute; bottom:30%; left:35%; width:12%; height:10%; background: #4a3a2a; border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: center; animation: mc-hand 2s ease-in-out infinite; }
.scn-miserly-concern .coin-purse { position:absolute; bottom:35%; left:38%; width:8%; height:6%; background: #a08050; border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: mc-purse 2s ease-in-out infinite; }
.scn-miserly-concern .shadow { position:absolute; bottom:0; left:20%; width:60%; height:25%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 70%); animation: mc-shadow 2s ease-in-out infinite; }
.scn-miserly-concern .glint { position:absolute; bottom:36%; left:39.5%; width:2%; height:2%; background: #ffd700; border-radius: 50%; box-shadow: 0 0 10px 4px #ffd700, 0 0 20px 8px rgba(255,215,0,.3); animation: mc-glint 2s ease-in-out infinite; }
@keyframes mc-figure { 0% { transform: scaleX(1) rotate(0) } 25% { transform: scaleX(1.02) rotate(2deg) } 50% { transform: scaleX(1) rotate(-1deg) } 75% { transform: scaleX(1.01) rotate(1deg) } 100% { transform: scaleX(1) rotate(0) } }
@keyframes mc-hand { 0% { transform: translate(0,0) rotate(-5deg) } 25% { transform: translate(4px,-2px) rotate(3deg) } 50% { transform: translate(0,0) rotate(-2deg) } 75% { transform: translate(-3px,-1px) rotate(6deg) } 100% { transform: translate(0,0) rotate(-5deg) } }
@keyframes mc-purse { 0% { transform: translate(0,0) } 25% { transform: translate(5px,2px) } 50% { transform: translate(0,0) } 75% { transform: translate(-4px,1px) } 100% { transform: translate(0,0) } }
@keyframes mc-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.05) } 100% { opacity:.3; transform: scaleX(1) } }
@keyframes mc-glint { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(2) } 100% { opacity:.6; transform: scale(1) } }

.scn-wilder-intervenes {
  background:
    radial-gradient(ellipse at 20% 50%, #5a2a1a 0%, transparent 50%),
    linear-gradient(180deg, #2a1a0a 0%, #3a1a0a 30%, #0d0804 100%);
}
.scn-wilder-intervenes .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  animation: wi-wall 14s ease-in-out infinite alternate;
}
.scn-wilder-intervenes .fireplace {
  position:absolute; bottom:30%; left:20%; width:36%; height:50%;
  background: linear-gradient(90deg, #4a2a12 0%, #5a3a1a 30%, #2a1a0a 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 10% 10%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-wilder-intervenes .fire-glow {
  position:absolute; bottom:34%; left:22%; width:30%; height:40%;
  background: radial-gradient(ellipse at 50% 60%, #ffa050 0%, #c04020 40%, transparent 70%);
  animation: wi-glow 1.8s ease-in-out infinite alternate;
  mix-blend-mode: screen;
}
.scn-wilder-intervenes .figure-wilder {
  position:absolute; bottom:32%; left:55%; width:6%; height:34%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wi-wilder 0.9s ease-in-out infinite alternate;
}
.scn-wilder-intervenes .shadow {
  position:absolute; bottom:28%; left:62%; width:18%; height:6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: wi-shadow 1.2s ease-in-out infinite alternate;
}
.scn-wilder-intervenes .door {
  position:absolute; bottom:30%; right:8%; width:14%; height:60%;
  background: linear-gradient(180deg, #4a2a12 0%, #2a1a08 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 10px #1a0a04;
  animation: wi-door 20s ease-in-out infinite;
}
.scn-wilder-intervenes .ember {
  position:absolute; bottom:36%; left:28%; width:2%; height:2%;
  background: #ff8030; border-radius: 50%;
  box-shadow: 0 0 16px 6px #ff6010, 0 0 30px 12px #ff4000;
  animation: wi-ember 2.2s ease-in-out infinite;
}
@keyframes wi-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes wi-glow {
  0% { transform: scale(0.95); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.98); opacity: 0.85; }
}
@keyframes wi-wilder {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes wi-shadow {
  0% { transform: scaleX(0.9); opacity: 0.7; }
  100% { transform: scaleX(1.1); opacity: 0.5; }
}
@keyframes wi-door {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
}
@keyframes wi-ember {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(-10px) scale(0.6); opacity: 0.4; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}

.scn-duke-approves {
  background:
    radial-gradient(ellipse at 30% 70%, #6a3a1a 0%, transparent 50%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0a04 60%, #0d0400 100%);
}
.scn-duke-approves .wall-dark {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  animation: da-wall 20s ease-in-out infinite alternate;
}
.scn-duke-approves .hearth {
  position:absolute; bottom:30%; left:15%; width:40%; height:45%;
  background: linear-gradient(90deg, #5a2a12 0%, #7a3a1a 50%, #3a1a08 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 15% 15%;
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.5);
}
.scn-duke-approves .fire-light {
  position:absolute; bottom:35%; left:18%; width:34%; height:35%;
  background: radial-gradient(ellipse at 50% 40%, #ffb060 0%, #d06020 40%, transparent 70%);
  animation: da-firelight 4s ease-in-out infinite alternate;
  mix-blend-mode: screen;
}
.scn-duke-approves .armchair {
  position:absolute; bottom:28%; left:55%; width:22%; height:40%;
  background: linear-gradient(180deg, #2a1a08 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: da-chair 12s ease-in-out infinite;
}
.scn-duke-approves .duke-silhouette {
  position:absolute; bottom:32%; left:57%; width:16%; height:40%;
  background: linear-gradient(180deg, #0d0804 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-duke 6s ease-in-out infinite;
}
.scn-duke-approves .rug {
  position:absolute; bottom:22%; left:10%; width:80%; height:8%;
  background: linear-gradient(90deg, #3a1a0a, #5a2a12, #3a1a0a);
  border-radius: 50%;
  filter: blur(2px);
  animation: da-rug 18s ease-in-out infinite alternate;
}
.scn-duke-approves .spark {
  position:absolute; bottom:40%; left:22%; width:2%; height:3%;
  background: #ff9040; border-radius: 50%;
  box-shadow: 0 0 20px 8px #ff7020;
  animation: da-spark 3s ease-in-out infinite;
}
@keyframes da-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes da-firelight {
  0% { transform: scale(0.98); opacity: 0.7; }
  50% { transform: scale(1.04); opacity: 0.9; }
  100% { transform: scale(1.01); opacity: 0.8; }
}
@keyframes da-chair {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes da-duke {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes da-rug {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.04); }
}
@keyframes da-spark {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(-15px) scale(0.7); opacity: 0.3; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}

.scn-holmes-declines-hall {
  background:
    radial-gradient(ellipse at 50% 80%, #5a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0a 0%, #1a1008 50%, #0a0500 100%);
}
.scn-holmes-declines-hall .panel {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  animation: dh-panel 25s ease-in-out infinite alternate;
}
.scn-holmes-declines-hall .grate {
  position:absolute; bottom:30%; left:10%; width:45%; height:50%;
  background: linear-gradient(90deg, #4a2a12, #5a3a1a, #2a1a08);
  border-radius: 30% 30% 5% 5% / 50% 50% 10% 10%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-holmes-declines-hall .glow-mid {
  position:absolute; bottom:34%; left:14%; width:38%; height:38%;
  background: radial-gradient(ellipse at 50% 50%, #ffa050 0%, #c04a20 40%, transparent 70%);
  animation: dh-glow 4.5s ease-in-out infinite alternate;
  mix-blend-mode: screen;
}
.scn-holmes-declines-hall .holmes-figure {
  position:absolute; bottom:32%; left:55%; width:7%; height:38%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dh-holmes 5s ease-in-out infinite alternate;
}
.scn-holmes-declines-hall .shadow-long {
  position:absolute; bottom:26%; left:62%; width:20%; height:8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: dh-shadow 7s ease-in-out infinite alternate;
}
.scn-holmes-declines-hall .lamp {
  position:absolute; bottom:40%; left:30%; width:4%; height:6%;
  background: radial-gradient(circle, #ffd060 0%, #c08020 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c08020, 0 0 60px 20px #a06010;
  animation: dh-lamp 3s ease-in-out infinite alternate;
}
@keyframes dh-panel {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes dh-glow {
  0% { transform: scale(0.97); opacity: 0.7; }
  50% { transform: scale(1.04); opacity: 0.9; }
  100% { transform: scale(0.99); opacity: 0.8; }
}
@keyframes dh-holmes {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dh-shadow {
  0% { transform: scaleX(0.9); opacity: 0.6; }
  100% { transform: scaleX(1.1); opacity: 0.4; }
}
@keyframes dh-lamp {
  0% { transform: scale(0.95) rotate(-5deg); }
  50% { transform: scale(1.05) rotate(5deg); }
  100% { transform: scale(0.98) rotate(0deg); }
}

.scn-holmes-questions-duke {
  background:
    radial-gradient(ellipse at 50% 90%, #4a2a12 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0a04 60%, #0d0400 100%);
}
.scn-holmes-questions-duke .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a1a08 0%, #1a0a00 100%);
  animation: hq-floor 20s ease-in-out infinite alternate;
}
.scn-holmes-questions-duke .fire-pit {
  position:absolute; bottom:20%; left:20%; width:60%; height:60%;
  background: linear-gradient(90deg, #4a2a12, #6a3a1a, #3a1a08);
  border-radius: 30% 30% 10% 10% / 50% 50% 15% 15%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-holmes-questions-duke .fire-radiance {
  position:absolute; bottom:24%; left:24%; width:52%; height:50%;
  background: radial-gradient(ellipse at 50% 40%, #ffb050 0%, #d06020 40%, transparent 70%);
  animation: hq-fire 5s ease-in-out infinite alternate;
  mix-blend-mode: screen;
}
.scn-holmes-questions-duke .duke-at-desk {
  position:absolute; bottom:18%; left:10%; width:25%; height:50%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hq-duke 8s ease-in-out infinite alternate;
}
.scn-holmes-questions-duke .holmes-opposite {
  position:absolute; bottom:18%; right:10%; width:20%; height:48%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hq-holmes 6s ease-in-out infinite alternate;
}
.scn-holmes-questions-duke .desk {
  position:absolute; bottom:14%; left:30%; width:40%; height:8%;
  background: linear-gradient(180deg, #2a1a08 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: hq-desk 15s ease-in-out infinite;
}
.scn-holmes-questions-duke .paper {
  position:absolute; bottom:16%; left:42%; width:6%; height:4%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: hq-paper 4s ease-in-out infinite alternate;
}
.scn-holmes-questions-duke .candle {
  position:absolute; bottom:24%; left:48%; width:2%; height:8%;
  background: linear-gradient(180deg, #2a1a08 0%, #1a0a00 100%);
  border-radius: 2px;
  animation: hq-candle 3s ease-in-out infinite alternate;
}
@keyframes hq-floor {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes hq-fire {
  0% { transform: scale(0.96); opacity: 0.7; }
  50% { transform: scale(1.05); opacity: 0.9; }
  100% { transform: scale(0.99); opacity: 0.8; }
}
@keyframes hq-duke {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hq-holmes {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hq-desk {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.01); }
}
@keyframes hq-paper {
  0% { transform: rotate(-10deg) translateY(0); }
  100% { transform: rotate(5deg) translateY(-2px); }
}
@keyframes hq-candle {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.9; }
}

/* constable-confession */
.scn-constable-confession {
  background: linear-gradient(180deg, #1a1015 0%, #2c1a20 45%, #3a242c 100%), radial-gradient(ellipse at 30% 60%, #4a2a30 0%, transparent 70%);
}
.scn-constable-confession .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #1c1218 0%, #2a1e24 50%, #1f141a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-constable-confession .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2c1a20 0%, #1a1015 100%);
  border-top: 4px solid #3a242c;
}
.scn-constable-confession .desk {
  position: absolute; bottom: 20%; left: 20%; width: 45%; height: 22%;
  background: linear-gradient(180deg, #4a3020 0%, #2c1a10 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: sc1-desk 6s ease-in-out infinite alternate;
}
.scn-constable-confession .lamp {
  position: absolute; bottom: 38%; left: 28%; width: 14px; height: 20px;
  background: radial-gradient(circle, #d4a060 0%, #b07030 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px #b07030, 0 0 80px 20px rgba(176,112,48,.5);
  animation: sc1-lamp 2s ease-in-out infinite alternate;
}
.scn-constable-confession .shadow-desktop {
  position: absolute; bottom: 18%; left: 22%; width: 40%; height: 4%;
  background: rgba(0,0,0,.5);
  filter: blur(6px);
}
.scn-constable-confession .constable {
  position: absolute; bottom: 22%; right: 18%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #3a2a30 0%, #1f141a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-constable 4s ease-in-out infinite;
}
.scn-constable-confession .constable-shadow {
  position: absolute; bottom: 18%; right: 20%; width: 40px; height: 10px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: sc1-shadow 4s ease-in-out infinite;
}
.scn-constable-confession .holmes-silhouette {
  position: absolute; bottom: 20%; left: 8%; width: 22px; height: 55px;
  background: #0f0a0c;
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 0 1px #1a1015;
  transform-origin: bottom center;
  animation: sc1-holmes 8s ease-in-out infinite;
}
@keyframes sc1-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(0,0,0,.7); }
  100% { transform: translateY(0); }
}
@keyframes sc1-lamp {
  0% { box-shadow: 0 0 20px 4px #b07030, 0 0 50px 12px rgba(176,112,48,.4); }
  50% { box-shadow: 0 0 40px 12px #d4a060, 0 0 80px 24px rgba(212,160,96,.6); }
  100% { box-shadow: 0 0 25px 6px #b07030, 0 0 60px 16px rgba(176,112,48,.45); }
}
@keyframes sc1-constable {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(-3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes sc1-shadow {
  0% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.2); opacity: .3; }
  100% { transform: scale(1); opacity: .5; }
}
@keyframes sc1-holmes {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-1px) rotate(-2deg); }
  60% { transform: translateY(1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}

/* holmes-victory */
.scn-holmes-victory {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a20 40%, #7a5230 70%, #4a3020 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,.3);
}
.scn-holmes-victory .room-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a3020 0%, #6a4020 50%, #4a3020 100%);
}
.scn-holmes-victory .wall-panel {
  position: absolute; top: 10%; left: 5%; width: 90%; height: 60%;
  border: 2px solid #8a6030;
  background: rgba(74,48,32,.3);
  border-radius: 8px;
}
.scn-holmes-victory .window {
  position: absolute; top: 12%; right: 8%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a2a 100%);
  border: 3px solid #5a3a20;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 0 20px rgba(255,200,100,.3);
}
.scn-holmes-victory .fireplace {
  position: absolute; bottom: 28%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #3a2015 0%, #1f1008 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 0 40px rgba(255,150,50,.4);
}
.scn-holmes-victory .desk {
  position: absolute; bottom: 20%; left: 40%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #6a4020 0%, #4a2810 100%);
  border-radius: 6px;
  box-shadow: 0 8px 30px rgba(0,0,0,.6);
}
.scn-holmes-victory .holmes-figure {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0c06 100%);
  border-radius: 30% 30% 20% 20% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: sc2-holmes 6s ease-in-out infinite;
}
.scn-holmes-victory .watson-figure {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2216 0%, #1f0e08 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-watson 8s ease-in-out infinite alternate;
}
.scn-holmes-victory .gas-lamp {
  position: absolute; top: 8%; left: 45%; width: 12px; height: 22px;
  background: radial-gradient(circle, #f0c860 0%, #c09040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 10px #c09040, 0 0 100px 30px rgba(192,144,64,.3);
  animation: sc2-lamp 4s ease-in-out infinite alternate;
}
.scn-holmes-victory .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 45% 15%, rgba(255,200,100,.15) 0%, transparent 70%);
  pointer-events: none;
}
@keyframes sc2-holmes {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes sc2-watson {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(3px) scale(1.02); }
  100% { transform: translateX(-3px) scale(0.98); }
}
@keyframes sc2-lamp {
  0% { box-shadow: 0 0 30px 6px #c09040, 0 0 80px 20px rgba(192,144,64,.2); opacity: .9; }
  50% { box-shadow: 0 0 50px 14px #f0c860, 0 0 120px 40px rgba(240,200,96,.4); opacity: 1; }
  100% { box-shadow: 0 0 35px 8px #c09040, 0 0 90px 25px rgba(192,144,64,.25); opacity: .95; }
}

/* confrontation-lady-hilda */
.scn-confrontation-lady-hilda {
  background: linear-gradient(180deg, #fdf5e6 0%, #f0e0c0 40%, #e0c8a0 100%),
              radial-gradient(ellipse at 60% 30%, rgba(255,255,240,.4) 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(160,120,80,.15);
}
.scn-confrontation-lady-hilda .wall-light {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f5eedd 0%, #f0e0c0 100%);
}
.scn-confrontation-lady-hilda .window-bright {
  position: absolute; top: 8%; left: 60%; width: 28%; height: 55%;
  background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 100%);
  border: 4px solid #e0c8a0;
  border-radius: 6px;
  box-shadow: inset 0 0 40px rgba(255,255,255,.4), 0 0 30px rgba(200,220,240,.3);
}
.scn-confrontation-lady-hilda .sofa {
  position: absolute; bottom: 12%; left: 10%; width: 40%; height: 28%;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a20 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
}
.scn-confrontation-lady-hilda .lady-hilda-standing {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #a06850 0%, #704830 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-lady 3s ease-in-out infinite alternate;
}
.scn-confrontation-lady-hilda .holmes-standing {
  position: absolute; bottom: 15%; left: 50%; width: 24px; height: 62px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0c06 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc3-holmes 4s ease-in-out infinite alternate;
}
.scn-confrontation-lady-hilda .chair {
  position: absolute; bottom: 10%; right: 15%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #4a3020 0%, #2c1a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
}
.scn-confrontation-lady-hilda .vase {
  position: absolute; bottom: 25%; right: 25%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #b0a080 0%, #806050 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-confrontation-lady-hilda .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.08) 100%);
}
@keyframes sc3-lady {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(2px) rotate(-2deg); }
}
@keyframes sc3-holmes {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(0.98); }
}

/* lady-hildas-plea */
.scn-lady-hildas-plea {
  background: linear-gradient(180deg, #fdf5e6 0%, #f0e0c0 40%, #e0c8a0 100%),
              radial-gradient(ellipse at 40% 50%, rgba(255,240,220,.5) 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(160,120,80,.2);
}
.scn-lady-hildas-plea .wall-light {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #e8d0b0 100%);
}
.scn-lady-hildas-plea .window-bright {
  position: absolute; top: 8%; left: 5%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 100%);
  border: 4px solid #e0c8a0;
  border-radius: 6px;
  box-shadow: inset 0 0 40px rgba(255,255,255,.4), 0 0 30px rgba(200,220,240,.3);
}
.scn-lady-hildas-plea .sofa {
  position: absolute; bottom: 12%; right: 10%; width: 40%; height: 28%;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a20 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
}
.scn-lady-hildas-plea .lady-hilda-kneeling {
  position: absolute; bottom: 10%; left: 35%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #a06850 0%, #704830 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc4-lady 5s ease-in-out infinite alternate;
}
.scn-lady-hildas-plea .holmes-standing {
  position: absolute; bottom: 15%; left: 52%; width: 24px; height: 62px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0c06 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc4-holmes 3s ease-in-out infinite alternate;
}
.scn-lady-hildas-plea .chair {
  position: absolute; bottom: 10%; left: 60%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #4a3020 0%, #2c1a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
}
.scn-lady-hildas-plea .rug {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #b08060 0%, #8a6040 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.1);
}
.scn-lady-hildas-plea .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.1) 100%);
}
@keyframes sc4-lady {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes sc4-holmes {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-1px) scale(1.01); }
  100% { transform: translateX(1px) scale(0.99); }
}

.scn-bannister-dismissed {
  background: linear-gradient(180deg, #f0e6d0 0%, #e0c8a0 50%, #c0a070 100%),
              radial-gradient(ellipse at 50% 30%, #fffaec 0%, transparent 70%);
}
.scn-bannister-dismissed .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d8c8a8 0%, #e8d8b8 50%, #d0b890 100%); }
.scn-bannister-dismissed .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a08050 0%, #806040 100%); }
.scn-bannister-dismissed .door { position:absolute; bottom:30%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #705040 0%, #503020 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
.scn-bannister-dismissed .door-frame { position:absolute; bottom:30%; left:calc(50% - 44px); width:88px; height:124px; border:4px solid #806040; border-radius:6% 6% 0 0; background: transparent; }
.scn-bannister-dismissed .lamp { position:absolute; bottom:38%; left:30%; width:16px; height:24px; background: radial-gradient(circle at 50% 30%, #ffe080 0%, #c09040 60%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 40px 12px rgba(255,224,128,0.5); animation: bd-lamp 6s ease-in-out infinite alternate; }
.scn-bannister-dismissed .table { position:absolute; bottom:30%; left:28%; width:60px; height:40px; background: linear-gradient(180deg, #a08860 0%, #7a6040 100%); border-radius:8% 8% 0 0; transform: perspective(400px) rotateX(20deg); }
.scn-bannister-dismissed .figure { position:absolute; bottom:28%; left:55%; width:20px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-figure 8s ease-in-out infinite; }
@keyframes bd-lamp { 0% { opacity:0.7; box-shadow: 0 0 30px 8px rgba(255,224,128,0.4); } 50% { opacity:1; box-shadow: 0 0 50px 16px rgba(255,224,128,0.7); } 100% { opacity:0.8; box-shadow: 0 0 35px 10px rgba(255,224,128,0.5); } }
@keyframes bd-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-students-nest {
  background: linear-gradient(180deg, #2a2a4a 0%, #3a3a5a 30%, #5a5a7a 60%, #8a8a9a 100%),
              radial-gradient(ellipse at 50% 80%, #7a7aaa 0%, transparent 70%);
}
.scn-students-nest .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a3a 0%, #4a4a6a 100%); animation: sn-sky 15s ease-in-out infinite alternate; }
.scn-students-nest .building { position:absolute; bottom:20%; left:20%; right:20%; height:60%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 8px 30px rgba(0,0,0,0.5); }
.scn-students-nest .window-left { position:absolute; bottom:45%; left:30%; width:20px; height:30px; background: radial-gradient(circle, #f0d060 0%, #b09040 70%); border-radius:10%; box-shadow: 0 0 20px 6px rgba(240,208,96,0.6); animation: sn-window 4s ease-in-out infinite alternate; }
.scn-students-nest .window-right { position:absolute; bottom:45%; right:30%; width:20px; height:30px; background: radial-gradient(circle, #f0d060 0%, #b09040 70%); border-radius:10%; box-shadow: 0 0 20px 6px rgba(240,208,96,0.6); animation: sn-window 4s ease-in-out infinite alternate-reverse; }
.scn-students-nest .tree { position:absolute; bottom:20%; left:10%; width:8px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%); border-radius:50%; transform-origin: bottom center; }
.scn-students-nest .tree::before { content:''; position:absolute; top:-30px; left:-20px; width:50px; height:40px; background: radial-gradient(ellipse, #2a4a2a 0%, #1a2a1a 70%); border-radius:50%; }
.scn-students-nest .bird-nest { position:absolute; bottom:72%; left:35%; width:14px; height:10px; background: radial-gradient(circle at 30% 40%, #a08060 0%, #705040 100%); border-radius:50% 50% 20% 20%; animation: sn-bird 6s ease-in-out infinite; }
.scn-students-nest .figure-holmes { position:absolute; bottom:10%; left:50%; width:18px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: sn-holmes 10s ease-in-out infinite; }
@keyframes sn-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sn-window { 0% { box-shadow: 0 0 15px 4px rgba(240,208,96,0.4); } 50% { box-shadow: 0 0 30px 10px rgba(240,208,96,0.8); } 100% { box-shadow: 0 0 20px 6px rgba(240,208,96,0.5); } }
@keyframes sn-bird { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sn-holmes { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }

.scn-visit-gilchrist {
  background: linear-gradient(180deg, #f8f0e0 0%, #e8d8b8 40%, #d0b890 100%),
              radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 60%);
}
.scn-visit-gilchrist .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8b8 0%, #d0b890 50%, #b09878 100%); }
.scn-visit-gilchrist .doorway { position:absolute; bottom:10%; left:50%; width:100px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:10% 10% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.3); }
.scn-visit-gilchrist .door-panel { position:absolute; bottom:10%; left:calc(50% - 40px); width:80px; height:150px; background: linear-gradient(90deg, #8a7a6a 0%, #a09080 50%, #7a6a5a 100%); border-radius:5% 5% 0 0; border:2px solid #5a4a3a; animation: vg-door 8s ease-in-out infinite; transform-origin: left; }
.scn-visit-gilchrist .figure-gilchrist { position:absolute; bottom:15%; left:48%; width:22px; height:70px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vg-gilchrist 6s ease-in-out infinite; }
.scn-visit-gilchrist .bookshelf { position:absolute; bottom:20%; left:10%; width:60px; height:100px; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius:5%; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
.scn-visit-gilchrist .bookshelf::before { content:''; position:absolute; top:15%; left:10%; width:80%; height:5px; background: #aa8860; }
.scn-visit-gilchrist .candle { position:absolute; bottom:30%; left:35%; width:12px; height:18px; background: linear-gradient(180deg, #ffe0a0 0%, #c09860 100%); border-radius:50% 50% 10% 10%; }
.scn-visit-gilchrist .glow { position:absolute; bottom:30%; left:35%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,224,160,0.6) 0%, transparent 70%); border-radius:50%; filter:blur(8px); animation: vg-glow 4s ease-in-out infinite alternate; }
@keyframes vg-door { 0% { transform: perspective(600px) rotateY(0deg); } 30% { transform: perspective(600px) rotateY(-20deg); } 70% { transform: perspective(600px) rotateY(-20deg); } 100% { transform: perspective(600px) rotateY(0deg); } }
@keyframes vg-gilchrist { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes vg-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(1); } }

.scn-holmes-draws-architecture {
  background: linear-gradient(180deg, #f5efdf 0%, #e0d0b0 50%, #c8b090 100%),
              radial-gradient(ellipse at 30% 60%, #fff5e0 0%, transparent 60%);
}
.scn-holmes-draws-architecture .desk-top { position:absolute; bottom:10%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #a08860 0%, #806040 100%); border-radius:30% 30% 0 0; transform: perspective(500px) rotateX(40deg); transform-origin: bottom center; }
.scn-holmes-draws-architecture .notebook { position:absolute; bottom:20%; left:30%; width:80px; height:60px; background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a8 100%); border-radius:4%; transform: perspective(400px) rotateX(20deg) rotateZ(5deg); box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.scn-holmes-draws-architecture .pencil { position:absolute; bottom:35%; left:25%; width:4px; height:40px; background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #e0c080 100%); transform: rotate(30deg); transform-origin: 50% 100%; animation: hd-pencil 6s ease-in-out infinite; }
.scn-holmes-draws-architecture .knife { position:absolute; bottom:30%; left:55%; width:16px; height:6px; background: linear-gradient(90deg, #907060 0%, #c0a090 50%, #806050 100%); border-radius:10% 10% 20% 20%; transform: rotate(-15deg); animation: hd-knife 10s ease-in-out infinite; }
.scn-holmes-draws-architecture .lamp-desk { position:absolute; bottom:60%; left:55%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 20%, #ffdead 0%, #d0a060 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 60px 20px rgba(255,222,173,0.5); animation: hd-lamp 5s ease-in-out infinite alternate; }
.scn-holmes-draws-architecture .sketch-line { position:absolute; bottom:28%; left:32%; width:50px; height:1px; background:#4a3a2a; transform: rotate(-10deg) scaleX(1); animation: hd-sketch 8s ease-in-out infinite; }
.scn-holmes-draws-architecture .shadow-desktop { position:absolute; bottom:5%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%); }
@keyframes hd-pencil { 0% { transform: rotate(25deg) translateY(0); } 25% { transform: rotate(20deg) translateY(-3px); } 50% { transform: rotate(30deg) translateY(0); } 75% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes hd-knife { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(-15deg) translateX(5px); } 50% { transform: rotate(-10deg) translateX(0); } 75% { transform: rotate(-5deg) translateX(-3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes hd-lamp { 0% { opacity:0.7; box-shadow: 0 0 40px 10px rgba(255,222,173,0.4); } 50% { opacity:1; box-shadow: 0 0 70px 20px rgba(255,222,173,0.7); } 100% { opacity:0.8; box-shadow: 0 0 50px 15px rgba(255,222,173,0.5); } }
@keyframes hd-sketch { 0% { transform: rotate(-10deg) scaleX(1); opacity:0.6; } 30% { transform: rotate(-8deg) scaleX(1.2); opacity:1; } 60% { transform: rotate(-12deg) scaleX(0.9); opacity:0.8; } 100% { transform: rotate(-10deg) scaleX(1); opacity:0.6; } }

.scn-trace-on-table {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 40%, #d4c0a0 100%),
              radial-gradient(ellipse at 80% 20%, rgba(255,230,180,0.6) 0%, transparent 50%);
}
.scn-trace-on-table .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #d4c0a0 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
  animation: to-wall 20s ease-in-out infinite alternate;
}
.scn-trace-on-table .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6e4a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
  animation: to-table 15s ease-in-out infinite alternate;
}
.scn-trace-on-table .paper {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 20%;
  background: rgba(255,250,230,0.7);
  border: 1px solid rgba(200,180,140,0.5);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: to-paper 8s ease-in-out infinite alternate;
}
.scn-trace-on-table .pellet {
  position: absolute; bottom: 28%; left: 52%; width: 12px; height: 12px;
  background: radial-gradient(circle at 40% 40%, #2a2a2a, #111);
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  animation: to-pellet 6s ease-in-out infinite alternate;
}
.scn-trace-on-table .light {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.4) 0%, transparent 60%);
  filter: blur(8px);
  animation: to-light 12s ease-in-out infinite alternate;
}
.scn-trace-on-table .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 25%; height: 8%;
  background: rgba(0,0,0,0.1);
  border-radius: 50%;
  filter: blur(3px);
  animation: to-shadow 10s ease-in-out infinite alternate;
}
@keyframes to-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes to-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes to-paper { 0% { opacity:0.7; transform: rotate(-2deg) } 50% { opacity:0.9; transform: rotate(0deg) } 100% { opacity:0.75; transform: rotate(-1deg) } }
@keyframes to-pellet { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes to-light { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes to-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

.scn-cut-and-door {
  background: linear-gradient(180deg, #d4c8b0 0%, #c4b498 40%, #b0a088 100%),
              radial-gradient(ellipse at 80% 20%, rgba(240,220,180,0.5) 0%, transparent 60%);
}
.scn-cut-and-door .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d0c0a8 0%, #c0b098 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.1);
  animation: td-wall 18s ease-in-out infinite alternate;
}
.scn-cut-and-door .door {
  position: absolute; bottom: 5%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #8a6e4a 0%, #6a5230 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2), 2px 0 8px rgba(0,0,0,0.1);
  animation: td-door 12s ease-in-out infinite alternate;
}
.scn-cut-and-door .doorframe {
  position: absolute; bottom: 5%; left: 33%; width: 34%; height: 62%;
  border: 4px solid #5a4a2a;
  border-radius: 3px 3px 0 0;
  box-sizing: border-box;
  background: none;
  pointer-events: none;
  animation: td-frame 20s ease-in-out infinite;
}
.scn-cut-and-door .cut {
  position: absolute; bottom: 25%; left: 48%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: td-cut 5s ease-in-out infinite alternate;
}
.scn-cut-and-door .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b0a088 0%, #8a7a68 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.15);
  animation: td-floor 25s ease-in-out infinite alternate;
}
.scn-cut-and-door .keyhole {
  position: absolute; bottom: 35%; left: 49%; width: 6px; height: 8px;
  background: #2a2a1a;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
  animation: td-keyhole 7s ease-in-out infinite alternate;
}
@keyframes td-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes td-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes td-frame { 0% { border-color: #5a4a2a } 50% { border-color: #6a5a3a } 100% { border-color: #5a4a2a } }
@keyframes td-cut { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:0.85; transform: scaleY(1) } }
@keyframes td-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes td-keyhole { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-bedroom-examination {
  background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 50%, #141420 100%),
              radial-gradient(ellipse at 50% 100%, rgba(60,50,80,0.3) 0%, transparent 60%);
}
.scn-bedroom-examination .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: be-wall 22s ease-in-out infinite alternate;
}
.scn-bedroom-examination .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
  animation: be-floor 30s ease-in-out infinite alternate;
}
.scn-bedroom-examination .bed {
  position: absolute; bottom: 10%; left: 10%; width: 60%; height: 25%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: be-bed 15s ease-in-out infinite alternate;
}
.scn-bedroom-examination .curtain-rail {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 4px;
  background: #6a6a7a;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: be-rail 20s ease-in-out infinite;
}
.scn-bedroom-examination .curtain {
  position: absolute; top: 17%; left: 20%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: be-curtain 12s ease-in-out infinite alternate;
}
.scn-bedroom-examination .table {
  position: absolute; bottom: 8%; right: 15%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: be-table 10s ease-in-out infinite alternate;
}
@keyframes be-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes be-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes be-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes be-rail { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes be-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes be-table { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }

.scn-curtain-reveals-clothes {
  background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 50%, #141420 100%),
              radial-gradient(ellipse at 50% 100%, rgba(60,50,80,0.3) 0%, transparent 60%);
}
.scn-curtain-reveals-clothes .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: cr-wall 20s ease-in-out infinite alternate;
}
.scn-curtain-reveals-clothes .curtain-left {
  position: absolute; top: 5%; left: 5%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 4px 0 0 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: cr-left 14s ease-in-out infinite alternate;
}
.scn-curtain-reveals-clothes .curtain-right {
  position: absolute; top: 5%; right: 5%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 0 4px 4px 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
  animation: cr-right 14s ease-in-out infinite alternate reverse;
}
.scn-curtain-reveals-clothes .suit1 {
  position: absolute; top: 15%; left: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: cr-suit1 6s ease-in-out infinite alternate;
}
.scn-curtain-reveals-clothes .suit2 {
  position: absolute; top: 20%; left: 50%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: cr-suit2 8s ease-in-out infinite alternate;
}
.scn-curtain-reveals-clothes .pellet {
  position: absolute; bottom: 20%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle at 40% 40%, #2a2a2a, #111);
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  animation: cr-pellet 5s ease-in-out infinite alternate;
}
.scn-curtain-reveals-clothes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
  animation: cr-floor 30s ease-in-out infinite alternate;
}
@keyframes cr-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes cr-left { 0% { transform: translateX(0) } 50% { transform: translateX(-10%) } 100% { transform: translateX(0) } }
@keyframes cr-right { 0% { transform: translateX(0) } 50% { transform: translateX(10%) } 100% { transform: translateX(0) } }
@keyframes cr-suit1 { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes cr-suit2 { 0% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes cr-pellet { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes cr-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }

/* Scene: holmes-at-home — calm, bright interior */
.scn-holmes-at-home {
  background: linear-gradient(180deg, #f5ecd6 0%, #e8dcc8 50%, #d4c4a8 100%), radial-gradient(ellipse at 50% 80%, #f0e0c0 0%, transparent 60%);
}
.scn-holmes-at-home .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #faf3e6 0%, #e8dcc8 50%, #d0bea0 100%);
}
.scn-holmes-at-home .desk {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(135deg, #8b6b4e 0%, #5a4030 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.25);
  animation: hah-desk 6s ease-in-out infinite alternate;
}
.scn-holmes-at-home .holmes-figure {
  position: absolute; bottom: 18%; left: 34%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #2c1e16 0%, #1a110c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hah-figure 8s ease-in-out infinite;
}
.scn-holmes-at-home .chair {
  position: absolute; bottom: 15%; left: 32%; width: 90px; height: 100px;
  background: linear-gradient(135deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hah-chair 12s ease-in-out infinite alternate;
}
.scn-holmes-at-home .window-light {
  position: absolute; top: 5%; left: 60%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at 30% 30%, rgba(255,255,220,0.8) 0%, rgba(230,210,170,0.2) 70%);
  border-radius: 5%; filter: blur(3px);
  animation: hah-window 15s ease-in-out infinite alternate;
}
.scn-holmes-at-home .letter {
  position: absolute; bottom: 28%; left: 36%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f5f0ea 0%, #dcd5c8 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: hah-letter 5s ease-in-out infinite;
}
.scn-holmes-at-home .lamp-glow {
  position: absolute; bottom: 25%; left: 28%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe080 0%, #d4a040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #d4a040;
  animation: hah-lamp 4s ease-in-out infinite alternate;
}
@keyframes hah-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hah-figure { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) rotate(1deg) } 100% { transform: scaleX(1) rotate(0) } }
@keyframes hah-chair { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes hah-window { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes hah-letter { 0% { transform: translate(0, 0) } 50% { transform: translate(3px, -2px) rotate(2deg) } 100% { transform: translate(0, 0) } }
@keyframes hah-lamp { 0% { opacity: 0.8; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.85; transform: scale(0.95) } }

/* Scene: hopkins-breakfast — calm, bright interior */
.scn-hopkins-breakfast {
  background: linear-gradient(180deg, #fff8e7 0%, #f0e6d0 50%, #e0d0b8 100%), radial-gradient(ellipse at 50% 90%, #f5e8d0 0%, transparent 60%);
}
.scn-hopkins-breakfast .breakfast-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fef9ed 0%, #f0e6d0 50%, #dcc8ac 100%);
}
.scn-hopkins-breakfast .table {
  position: absolute; bottom: 22%; left: 15%; width: 70%; height: 10%;
  background: linear-gradient(135deg, #a0876a 0%, #7a6348 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: hbr-table 7s ease-in-out infinite alternate;
}
.scn-hopkins-breakfast .hopkins-figure {
  position: absolute; bottom: 18%; left: 30%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #4a3222 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hbr-figure-a 8s ease-in-out infinite;
}
.scn-hopkins-breakfast .watson-figure {
  position: absolute; bottom: 18%; right: 30%; width: 55px; height: 115px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1a1208 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hbr-figure-b 9s ease-in-out infinite;
}
.scn-hopkins-breakfast .plate-set {
  position: absolute; bottom: 26%; left: 38%; width: 50px; height: 8px;
  background: linear-gradient(135deg, #f0e8d8 0%, #d4c8b4 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: hbr-plate 5s ease-in-out infinite alternate;
}
.scn-hopkins-breakfast .teapot {
  position: absolute; bottom: 26%; left: 55%; width: 30px; height: 25px;
  background: linear-gradient(135deg, #c8b898 0%, #a08c70 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: hbr-teapot 12s ease-in-out infinite;
}
.scn-hopkins-breakfast .morning-window {
  position: absolute; top: 2%; left: 65%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,240,200,0.7) 0%, rgba(220,200,160,0.1) 70%);
  border-radius: 5%; filter: blur(2px);
  animation: hbr-window 20s ease-in-out infinite alternate;
}
@keyframes hbr-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hbr-figure-a { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes hbr-figure-b { 0% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(1deg) } }
@keyframes hbr-plate { 0% { opacity: 0.9; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-1px) } 100% { opacity: 0.9; transform: translateY(0) } }
@keyframes hbr-teapot { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) } }
@keyframes hbr-window { 0% { opacity: 0.7 } 50% { opacity: 0.95 } 100% { opacity: 0.75 } }

/* Scene: holmes-objects — calm, bright interior (profile close-up) */
.scn-holmes-objects {
  background: linear-gradient(180deg, #e8dcc8 0%, #d0bea0 50%, #b8a48c 100%), radial-gradient(ellipse at 30% 50%, #f0e0c0 0%, transparent 60%);
}
.scn-holmes-objects .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #ddd0b8 0%, #c8b89c 100%);
}
.scn-holmes-objects .holmes-profile {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 130px;
  background: linear-gradient(180deg, #2c1e16 0%, #1a110c 100%);
  border-radius: 60% 40% 30% 50% / 70% 50% 40% 30%;
  transform-origin: bottom center;
  animation: hob-profile 10s ease-in-out infinite;
}
.scn-holmes-objects .holmes-hand {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #c8b095 0%, #a08a70 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: top center;
  animation: hob-hand 4s ease-in-out infinite alternate;
}
.scn-holmes-objects .open-book {
  position: absolute; bottom: 22%; left: 55%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #f5f0ea 0%, #dcd5c8 100%);
  border-radius: 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: hob-book 6s ease-in-out infinite;
}
.scn-holmes-objects .pipe {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20%;
  animation: hob-pipe 8s ease-in-out infinite;
}
.scn-holmes-objects .desk-lamp {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,160,100,0.5);
  animation: hob-lamp 5s ease-in-out infinite alternate;
}
@keyframes hob-profile { 0% { transform: scaleX(1) rotate(0) } 50% { transform: scaleX(1.02) rotate(1deg) } 100% { transform: scaleX(1) rotate(0) } }
@keyframes hob-hand { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes hob-book { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hob-pipe { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0) } }
@keyframes hob-lamp { 0% { opacity: 0.8; transform: scaleY(0.95) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: 0.85; transform: scaleY(0.95) } }

/* Scene: hopkins-defends — tense, bright interior (sharper, faster) */
.scn-hopkins-defends {
  background: linear-gradient(180deg, #c8b8a0 0%, #a8947c 50%, #8a7864 100%), radial-gradient(ellipse at 50% 80%, #d0c0a8 0%, transparent 70%);
}
.scn-hopkins-defends .tense-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4c38 0%, #3a2e22 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: hde-floor 4s ease-in-out infinite alternate;
}
.scn-hopkins-defends .hopkins-figure {
  position: absolute; bottom: 15%; left: 25%; width: 55px; height: 120px;
  background: linear-gradient(180deg, #4a3222 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  filter: drop-shadow(-5px 0 8px rgba(0,0,0,0.4));
  animation: hde-hopkins 3s ease-in-out infinite alternate;
}
.scn-hopkins-defends .holmes-figure {
  position: absolute; bottom: 15%; right: 25%; width: 55px; height: 125px;
  background: linear-gradient(180deg, #2c1e16 0%, #1a110c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  filter: drop-shadow(5px 0 8px rgba(0,0,0,0.3));
  animation: hde-holmes 3.5s ease-in-out infinite alternate;
}
.scn-hopkins-defends .interrogation-table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(135deg, #6a5a44 0%, #4a3a28 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: hde-table 2s ease-in-out infinite alternate;
}
.scn-hopkins-defends .sharp-shadow {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #1a1a1a 30%, #1a1a1a 70%, transparent 100%);
  filter: blur(1px);
  animation: hde-shadow 3s ease-in-out infinite alternate;
}
.scn-hopkins-defends .tension-lines {
  position: absolute; top: 20%; left: 45%; width: 10%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #7a6a54 20%, transparent 40%, #7a6a54 60%, transparent 80%, #7a6a54 100%);
  filter: blur(2px); opacity: 0.3;
  animation: hde-lines 2s ease-in-out infinite alternate;
}
.scn-hopkins-defends .lamp-overhead {
  position: absolute; top: 5%; left: 45%; width: 30px; height: 20px;
  background: radial-gradient(circle, #ffe080 0%, #d4a040 70%, transparent 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 -10px 30px 10px rgba(200,160,80,0.5);
  animation: hde-lamp 1.5s ease-in-out infinite alternate;
}
@keyframes hde-floor { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hde-hopkins { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-4px) scaleX(0.98) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes hde-holmes { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(4px) scaleX(1.02) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes hde-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hde-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.3 } }
@keyframes hde-lines { 0% { opacity: 0.2; transform: scaleY(1) } 50% { opacity: 0.5; transform: scaleY(1.1) } 100% { opacity: 0.2; transform: scaleY(1) } }
@keyframes hde-lamp { 0% { opacity: 0.8; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(0.95) } }

/* wilder-interrupts-again */
.scn-wilder-interrupts-again {
  background: linear-gradient(135deg, #3a1a0a 0%, #5e2a12 40%, #1a0a04 100%),
              radial-gradient(ellipse at 30% 40%, #b85a2a 0%, transparent 60%);
}
.scn-wilder-interrupts-again .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1408 0%, #1a0a04 80%); }
.scn-wilder-interrupts-again .fireplace { position:absolute; left:8%; bottom:8%; width:25%; height:45%; background: linear-gradient(180deg, #4a2a14 0%, #1a0a04 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -12px 20px #000; animation: wi-fire 3s ease-in-out infinite; }
.scn-wilder-interrupts-again .desk { position:absolute; bottom:12%; left:35%; right:20%; height:8%; background: linear-gradient(180deg, #5e3a1e 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 6px 12px #000; }
.scn-wilder-interrupts-again .nobleman { position:absolute; bottom:18%; left:38%; width:14%; height:35%; background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wi-noble 6s ease-in-out infinite; }
.scn-wilder-interrupts-again .secretary { position:absolute; bottom:18%; left:58%; width:12%; height:32%; background: linear-gradient(180deg, #1a0e06 0%, #000 100%); border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%; transform-origin: bottom center; animation: wi-secretary 4s ease-in-out infinite; }
.scn-wilder-interrupts-again .lamplight { position:absolute; top:20%; right:15%; width:8%; height:8%; background: radial-gradient(circle, #d08030 0%, #803010 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #c07020, 0 0 60px 20px rgba(192,112,32,0.3); animation: wi-lamp 2s ease-in-out infinite alternate; }
.scn-wilder-interrupts-again .shadow { position:absolute; bottom:0; left:30%; width:40%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%); animation: wi-shadow 5s ease-in-out infinite; }
@keyframes wi-fire { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.08); } 100% { opacity:0.75; transform: scaleY(0.96); } }
@keyframes wi-noble { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(1%) rotate(-1deg); } 60% { transform: translateX(-1%) rotate(0); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wi-secretary { 0% { transform: translateX(0) rotate(2deg); } 20% { transform: translateX(3%) rotate(-1deg); } 40% { transform: translateX(-2%) rotate(3deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes wi-lamp { 0% { box-shadow: 0 0 20px 5px #c07020; opacity:0.6; } 50% { box-shadow: 0 0 40px 15px #d08030; opacity:1; } 100% { box-shadow: 0 0 25px 8px #c07020; opacity:0.7; } }
@keyframes wi-shadow { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.2); } 100% { opacity:0.5; transform: scaleX(0.9); } }

/* duke-suggests-france */
.scn-duke-suggests-france {
  background: linear-gradient(180deg, #3a1a0a 0%, #5e2a12 30%, #1a0a04 100%),
              radial-gradient(ellipse at 50% 40%, #a84a1a 0%, transparent 70%);
}
.scn-duke-suggests-france .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1408 0%, #1a0a04 80%); }
.scn-duke-suggests-france .fireplace { position:absolute; left:8%; bottom:8%; width:22%; height:40%; background: linear-gradient(180deg, #4a2a14 0%, #1a0a04 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 15px #000; animation: ds-fire 4s ease-in-out infinite alternate; }
.scn-duke-suggests-france .armchair { position:absolute; bottom:12%; left:35%; width:20%; height:30%; background: linear-gradient(135deg, #3a1a0a 0%, #1a0a04 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px #000; animation: ds-chair 12s ease-in-out infinite; }
.scn-duke-suggests-france .duke { position:absolute; bottom:20%; left:38%; width:14%; height:28%; background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ds-duke 8s ease-in-out infinite; }
.scn-duke-suggests-france .map { position:absolute; bottom:8%; left:60%; width:15%; height:12%; background: linear-gradient(135deg, #a08050 0%, #70502a 100%); border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 4px 8px #000; animation: ds-map 20s linear infinite; }
.scn-duke-suggests-france .candle { position:absolute; top:50%; right:20%; width:4%; height:12%; background: linear-gradient(180deg, #c08030 0%, #80401a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #f0a050, 0 0 40px 12px rgba(240,160,80,0.4); animation: ds-candle 3s ease-in-out infinite; }
@keyframes ds-fire { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.85; transform: scaleY(0.97); } }
@keyframes ds-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ds-duke { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(0.5%) rotate(-0.5deg); } 70% { transform: translateX(-0.5%) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ds-map { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-6deg); } 100% { transform: rotate(-5deg); } }
@keyframes ds-candle { 0% { box-shadow: 0 0 15px 4px #f0a050; opacity:0.7; } 50% { box-shadow: 0 0 25px 8px #f0a050; opacity:1; } 100% { box-shadow: 0 0 18px 5px #f0a050; opacity:0.8; } }

/* holmes-remarks-on-duke */
.scn-holmes-remarks-on-duke {
  background: linear-gradient(180deg, #1a1420 0%, #0e0c14 50%, #050508 100%),
              radial-gradient(ellipse at 60% 70%, #2a1e30 0%, transparent 50%);
}
.scn-holmes-remarks-on-duke .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%); }
.scn-holmes-remarks-on-duke .desk { position:absolute; bottom:10%; left:25%; right:25%; height:7%; background: linear-gradient(180deg, #2a1e30 0%, #14101c 100%); border-radius: 4px; box-shadow: 0 6px 10px #000; }
.scn-holmes-remarks-on-duke .lamp-glow { position:absolute; top:35%; left:45%; width:10%; height:10%; background: radial-gradient(circle, #c0a070 0%, #604020 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #806040, 0 0 80px 30px rgba(128,96,64,0.3); animation: hr-lamp 5s ease-in-out infinite alternate; }
.scn-holmes-remarks-on-duke .holmes { position:absolute; bottom:18%; left:30%; width:10%; height:32%; background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%); border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%; transform-origin: bottom center; animation: hr-holmes 9s ease-in-out infinite; }
.scn-holmes-remarks-on-duke .watson { position:absolute; bottom:16%; left:55%; width:12%; height:30%; background: linear-gradient(180deg, #1e1828 0%, #0e0c14 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hr-watson 11s ease-in-out infinite; }
.scn-holmes-remarks-on-duke .books { position:absolute; bottom:18%; right:10%; width:12%; height:20%; background: linear-gradient(180deg, #2a1e30 0%, #14101c 100%); border-radius: 4px; box-shadow: inset 0 2px 4px #000; }
@keyframes hr-lamp { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.1); opacity:0.9; } 100% { transform: scale(0.95); opacity:0.7; } }
@keyframes hr-holmes { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(0.5%) rotate(1deg); } 50% { transform: translateX(-0.5%) rotate(-0.5deg); } 75% { transform: translateX(0.3%) rotate(0); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hr-watson { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-0.3%) rotate(-1deg); } 60% { transform: translateX(0.4%) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0); } }

/* examining-rooms */
.scn-examining-rooms {
  background: linear-gradient(180deg, #1c1824 0%, #12101c 50%, #080810 100%),
              radial-gradient(ellipse at 30% 60%, #2a2238 0%, transparent 60%);
}
.scn-examining-rooms .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #1c1824 0%, #0a0820 80%); }
.scn-examining-rooms .window { position:absolute; top:12%; left:10%; width:18%; height:30%; background: linear-gradient(135deg, #1a2040 0%, #0e1430 100%); border: 2px solid #2a2a3a; border-radius: 4px; box-shadow: inset 0 0 20px #2a4060; }
.scn-examining-rooms .bed { position:absolute; bottom:12%; left:40%; right:5%; height:25%; background: linear-gradient(180deg, #2a1e30 0%, #14101c 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -8px 12px #000; }
.scn-examining-rooms .holmes { position:absolute; bottom:18%; left:20%; width:10%; height:34%; background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%); border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%; transform-origin: bottom center; animation: er-holmes 8s ease-in-out infinite; }
.scn-examining-rooms .watson { position:absolute; bottom:16%; left:55%; width:12%; height:32%; background: linear-gradient(180deg, #1e1828 0%, #0e0c14 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: er-watson 10s ease-in-out infinite; }
.scn-examining-rooms .moon-glow { position:absolute; top:8%; left:13%; width:14%; height:14%; background: radial-gradient(circle, #c0d0e0 0%, #406080 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px #80a0c0, 0 0 120px 40px rgba(128,160,192,0.3); animation: er-moon 15s ease-in-out infinite alternate; }
.scn-examining-rooms .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
@keyframes er-holmes { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-1px) rotate(1deg); } 60% { transform: translateY(0) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes er-watson { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(1%) rotate(0.5deg); } 50% { transform: translateX(-1%) rotate(-0.3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes er-moon { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.7; } }

.scn-holmes-studies-map {
  background:
    linear-gradient(135deg, #3a3a3a 0%, #5a5a4a 40%, #4a4a3a 70%, #2e2e2e 100%),
    radial-gradient(ellipse at 50% 30%, #6a6a5a 0%, transparent 70%);
}
.scn-holmes-studies-map .bed-surface {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 55%;
  background: linear-gradient(180deg, #5a5a4a 0%, #4a4a3a 100%);
  border-radius: 4px; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: hsm-bed 12s ease-in-out infinite alternate;
}
.scn-holmes-studies-map .map-sheet {
  position: absolute; bottom: 22%; left: 24%; width: 52%; height: 36%;
  background: linear-gradient(135deg, #c8b88a 0%, #b8a878 50%, #a89868 100%);
  border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: hsm-map 18s ease-in-out infinite;
}
.scn-holmes-studies-map .map-grid {
  position: absolute; bottom: 22%; left: 24%; width: 52%; height: 36%;
  background: repeating-linear-gradient(0deg, transparent, transparent 8%, rgba(80,60,30,0.15) 8%, rgba(80,60,30,0.15) 8.5%),
              repeating-linear-gradient(90deg, transparent, transparent 8%, rgba(80,60,30,0.15) 8%, rgba(80,60,30,0.15) 8.5%);
  border-radius: 2px; opacity: 0.6;
}
.scn-holmes-studies-map .lamp-glow {
  position: absolute; bottom: 40%; left: 46%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #e8b060 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(232,176,96,0.3), 0 0 80px 40px rgba(232,176,96,0.1);
  animation: hsm-lamp 3s ease-in-out infinite alternate;
}
.scn-holmes-studies-map .lamp-body {
  position: absolute; bottom: 52%; left: 48%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #605040 0%, #403020 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: -2px 0 4px rgba(0,0,0,.3);
}
.scn-holmes-studies-map .pipe {
  position: absolute; bottom: 30%; left: 68%; width: 40px; height: 6px;
  background: #3a2a1a; border-radius: 40% 40% 20% 20%;
  transform: rotate(-15deg);
  animation: hsm-pipe 4s ease-in-out infinite;
}
.scn-holmes-studies-map .shadow-hand {
  position: absolute; bottom: 20%; right: 18%; width: 30px; height: 50px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%; transform: rotate(20deg);
  filter: blur(4px);
  animation: hsm-hand 6s ease-in-out infinite alternate;
}
@keyframes hsm-bed { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hsm-map { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.3deg); } }
@keyframes hsm-lamp { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.98); } }
@keyframes hsm-pipe { 0%, 100% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg) translateY(-1px); } }
@keyframes hsm-hand { 0% { transform: rotate(20deg) translateX(0); } 100% { transform: rotate(25deg) translateX(3px); } }

.scn-holmes-map-analysis {
  background:
    linear-gradient(180deg, #3e3e3e 0%, #5a5a4a 50%, #4a4a3a 100%),
    radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, transparent 70%);
}
.scn-holmes-map-analysis .map-close {
  position: absolute; bottom: 15%; left: 18%; width: 64%; height: 60%;
  background: linear-gradient(135deg, #d0c090 0%, #c0b080 50%, #a89868 100%);
  border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: hma-map-zoom 20s ease-in-out infinite alternate;
}
.scn-holmes-map-analysis .map-lines {
  position: absolute; bottom: 15%; left: 18%; width: 64%; height: 60%;
  background: repeating-linear-gradient(0deg, transparent 0%, transparent 4%, rgba(100,80,40,0.2) 4%, rgba(100,80,40,0.2) 4.5%),
              repeating-linear-gradient(90deg, transparent 0%, transparent 4%, rgba(100,80,40,0.2) 4%, rgba(100,80,40,0.2) 4.5%);
  opacity: 0.5; border-radius: 2px;
}
.scn-holmes-map-analysis .pin {
  position: absolute; bottom: 55%; left: 48%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #a06030 0%, #804020 100%);
  border-radius: 50% 50% 10% 10%; transform: translateX(-50%);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: hma-pin 8s ease-in-out infinite alternate;
}
.scn-holmes-map-analysis .finger {
  position: absolute; bottom: 50%; right: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c8b090 0%, #a08870 100%);
  border-radius: 40% 40% 30% 30%; transform: rotate(-10deg);
  box-shadow: -4px 0 8px rgba(0,0,0,.3);
  animation: hma-finger 5s ease-in-out infinite alternate;
}
.scn-holmes-map-analysis .cigar {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 6px;
  background: #4a3020; border-radius: 30% 30% 10% 10%;
  transform: rotate(20deg);
  animation: hma-cigar 6s ease-in-out infinite;
}
.scn-holmes-map-analysis .smoke-1 {
  position: absolute; bottom: 48%; left: 33%; width: 18px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,200,180,0.4) 0%, transparent 70%);
  filter: blur(6px); border-radius: 50%;
  animation: hma-smoke1 10s ease-in-out infinite alternate;
}
.scn-holmes-map-analysis .smoke-2 {
  position: absolute; bottom: 54%; left: 36%; width: 14px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,200,180,0.3) 0%, transparent 70%);
  filter: blur(5px); border-radius: 50%;
  animation: hma-smoke2 12s ease-in-out infinite alternate;
}
@keyframes hma-map-zoom { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes hma-pin { 0%, 100% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes hma-finger { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes hma-cigar { 0%, 100% { transform: rotate(20deg); } 50% { transform: rotate(25deg) translateY(-1px); } }
@keyframes hma-smoke1 { 0% { transform: translateY(0) scaleX(1); opacity: 0.6; } 50% { transform: translateY(-10px) scaleX(1.2); opacity: 0.3; } 100% { transform: translateY(-20px) scaleX(1); opacity: 0; } }
@keyframes hma-smoke2 { 0% { transform: translateY(0) scaleX(0.8); opacity: 0.5; } 50% { transform: translateY(-8px) scaleX(1.1); opacity: 0.2; } 100% { transform: translateY(-16px) scaleX(0.9); opacity: 0; } }

.scn-holmes-continues-map {
  background:
    linear-gradient(180deg, #4a4a4a 0%, #6a5a4a 40%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-holmes-continues-map .inn-wall {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 55%;
  background: linear-gradient(180deg, #b8a080 0%, #907860 100%);
  border-radius: 4px; box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-holmes-continues-map .inn-roof {
  position: absolute; bottom: 70%; left: 18%; width: 64%; height: 18%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 20% 20% 4% 4% / 60% 60% 4% 4%;
  box-shadow: 0 -4px 8px rgba(0,0,0,.4);
}
.scn-holmes-continues-map .sign-board {
  position: absolute; bottom: 52%; left: 44%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #a8553d 0%, #804030 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform: rotate(-2deg);
  animation: hcm-sign 10s ease-in-out infinite alternate;
}
.scn-holmes-continues-map .sign-post {
  position: absolute; bottom: 28%; left: 47%; width: 6px; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-holmes-continues-map .window-lit {
  position: absolute; bottom: 36%; left: 32%; width: 24px; height: 30px;
  background: radial-gradient(circle, #f0d080 0%, #d0a050 70%);
  border-radius: 4px; box-shadow: 0 0 20px 6px rgba(208,160,80,0.5), 0 0 40px 12px rgba(208,160,80,0.2);
  animation: hcm-window 3s ease-in-out infinite alternate;
}
.scn-holmes-continues-map .road-path {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.4);
}
.scn-holmes-continues-map .tree-shadow {
  position: absolute; bottom: 20%; right: 12%; width: 100px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(12px);
  animation: hcm-tree 25s ease-in-out infinite alternate;
}
@keyframes hcm-sign { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes hcm-window { 0% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(208,160,80,0.4); } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(208,160,80,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 16px 6px rgba(208,160,80,0.4); } }
@keyframes hcm-tree { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }

.scn-holmes-analyzes-terrain {
  background:
    linear-gradient(180deg, #5a6a5a 0%, #7a8a7a 40%, #6a7a6a 70%, #4a5a4a 100%),
    radial-gradient(ellipse at 50% 0%, #8a9a8a 0%, transparent 70%);
}
.scn-holmes-analyzes-terrain .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a8a7a 0%, #9a9a8a 30%, #8a8a7a 100%);
  animation: hat-sky 15s ease-in-out infinite alternate;
}
.scn-holmes-analyzes-terrain .fields {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a7a5a 0%, #5a6a4a 100%);
  border-radius: 20% 30% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: hat-fields 20s ease-in-out infinite alternate;
}
.scn-holmes-analyzes-terrain .wall-1 {
  position: absolute; bottom: 45%; left: 10%; width: 30%; height: 4%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px;
  animation: hat-wall1 25s linear infinite;
}
.scn-holmes-analyzes-terrain .wall-2 {
  position: absolute; bottom: 48%; right: 15%; width: 40%; height: 3%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 2px;
  animation: hat-wall2 25s linear infinite reverse;
}
.scn-holmes-analyzes-terrain .grove-trees {
  position: absolute; bottom: 35%; right: 30%; width: 120px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, #3a4a2a 0%, #2a3a1a 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: hat-grove 30s ease-in-out infinite alternate;
}
.scn-holmes-analyzes-terrain .figure-holmes {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hat-holmes 8s ease-in-out infinite;
}
.scn-holmes-analyzes-terrain .bicycle {
  position: absolute; bottom: 25%; left: 42%; width: 40px; height: 20px;
  background: transparent;
  border: 3px solid #4a3a2a; border-radius: 50%;
  transform: rotate(10deg);
  animation: hat-bike 6s ease-in-out infinite alternate;
}
@keyframes hat-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hat-fields { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hat-wall1 { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes hat-wall2 { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes hat-grove { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes hat-holmes { 0% { transform: rotate(-2deg); } 25% { transform: rotate(0deg) translateY(-2px); } 50% { transform: rotate(2deg); } 75% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(-2deg); } }
@keyframes hat-bike { 0%, 100% { transform: rotate(10deg); } 50% { transform: rotate(8deg) translateX(2px); } }

.scn-detour-revealed {
  background:
    linear-gradient(180deg, #bcc8c0 0%, #8a9a8e 40%, #5a6a5e 100%),
    radial-gradient(ellipse at 50% 0%, #d0dcd0 0%, transparent 70%);
}
.scn-detour-revealed .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c0ccc0 0%, #9aa89a 100%); animation: dt1-sky 16s ease-in-out infinite alternate; }
.scn-detour-revealed .distant-hills { position:absolute; bottom:45%; left:0; right:0; height:15%; background: linear-gradient(180deg, #4a5a4e 0%, #3a4a3e 100%); border-radius: 50% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: dt1-hills 20s ease-in-out infinite alternate; }
.scn-detour-revealed .road { position:absolute; bottom:30%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #7a7a6e 0%, #5a5a4e 100%); border-radius: 10% 10% 0 0; clip-path: polygon(20% 0%, 80% 0%, 90% 100%, 10% 100%); animation: dt1-road 14s ease-in-out infinite alternate; }
.scn-detour-revealed .hedge-left { position:absolute; bottom:30%; left:5%; width:20%; height:18%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 60% 30% 10%; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); animation: dt1-hedge 12s ease-in-out infinite; }
.scn-detour-revealed .hedge-right { position:absolute; bottom:30%; right:5%; width:20%; height:18%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 30% 10% 30%; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); animation: dt1-hedge 12s ease-in-out infinite reverse; }
.scn-detour-revealed .trees { position:absolute; bottom:40%; left:15%; width:12%; height:25%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: dt1-tree 18s ease-in-out infinite; }
.scn-detour-revealed .figure { position:absolute; bottom:28%; left:48%; width:14px; height:30px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dt1-walk 5s ease-in-out infinite; }
@keyframes dt1-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dt1-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dt1-road { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes dt1-hedge { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes dt1-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes dt1-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 33% { transform: translateX(6px) translateY(-1px) rotate(0deg) } 66% { transform: translateX(12px) translateY(0) rotate(2deg) } 100% { transform: translateX(18px) translateY(-1px) rotate(0deg) } }

.scn-brougham-passes {
  background:
    linear-gradient(180deg, #6a7a7e 0%, #4a5a5e 40%, #3a4a4e 100%),
    radial-gradient(ellipse at 50% 100%, #4a5a5e 0%, transparent 70%);
}
.scn-brougham-passes .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a8a8e 0%, #5a6a6e 100%); animation: bp1-sky 14s ease-in-out infinite alternate; }
.scn-brougham-passes .hedge { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a1e 0%, #0a1a0e 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: bp1-hedge 10s ease-in-out infinite; }
.scn-brougham-passes .carriage-body { position:absolute; bottom:35%; left:20%; width:28%; height:20%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 10% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: bp1-body 3s ease-in-out infinite; }
.scn-brougham-passes .carriage-wheel { position:absolute; bottom:28%; left:26%; width:12%; height:12%; background: radial-gradient(circle, #4a4a4a 0%, #1a1a1a 100%); border-radius: 50%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.8); animation: bp1-wheel 2s ease-in-out infinite; }
.scn-brougham-passes .carriage-window { position:absolute; bottom:38%; left:32%; width:8%; height:10%; background: radial-gradient(circle, #5a6a6e 0%, #2a3a3e 100%); border-radius: 20%; border: 1px solid #1a1a1a; animation: bp1-window 4s ease-in-out infinite alternate; }
.scn-brougham-passes .figure-inside { position:absolute; bottom:36%; left:34%; width:5%; height:10%; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: bp1-figure 3s ease-in-out infinite; }
.scn-brougham-passes .ground { position:absolute; bottom:20%; left:-10%; right:-10%; height:20%; background: linear-gradient(180deg, #3a4a3e 0%, #2a3a2e 100%); animation: bp1-ground 8s ease-in-out infinite; }
@keyframes bp1-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bp1-hedge { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bp1-body { 0% { transform: translateX(0) } 33% { transform: translateX(8px) } 66% { transform: translateX(-8px) } 100% { transform: translateX(0) } }
@keyframes bp1-wheel { 0% { transform: rotate(0deg) } 33% { transform: rotate(-15deg) } 66% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes bp1-window { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes bp1-figure { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes bp1-ground { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }

.scn-lonely-cottage {
  background:
    linear-gradient(180deg, #5a5a5e 0%, #3a3a3e 40%, #2a2a2e 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a3e 0%, transparent 70%);
}
.scn-lonely-cottage .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #6a6a6e 0%, #4a4a4e 100%); animation: lc1-sky 18s ease-in-out infinite alternate; }
.scn-lonely-cottage .cottage-wall { position:absolute; bottom:30%; left:25%; right:25%; height:30%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.4); animation: lc1-wall 12s ease-in-out infinite; }
.scn-lonely-cottage .cottage-roof { position:absolute; bottom:58%; left:22%; right:22%; height:8%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); animation: lc1-roof 14s ease-in-out infinite alternate; }
.scn-lonely-cottage .door { position:absolute; bottom:30%; left:44%; width:12%; height:25%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 5% 5% 0 0; animation: lc1-door 8s ease-in-out infinite; }
.scn-lonely-cottage .window { position:absolute; bottom:42%; left:60%; width:10%; height:12%; background: radial-gradient(circle, #4a6a5e 0%, #2a3a2e 100%); border-radius: 10%; box-shadow: inset 0 0 8px #2a3a2e; animation: lc1-window 5s ease-in-out infinite alternate; }
.scn-lonely-cottage .mist { position:absolute; bottom:20%; left:-10%; right:-10%; height:30%; background: linear-gradient(180deg, rgba(100,100,110,.6) 0%, transparent 100%); filter: blur(12px); animation: lc1-mist 30s ease-in-out infinite alternate; }
.scn-lonely-cottage .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); animation: lc1-ground 10s ease-in-out infinite; }
@keyframes lc1-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes lc1-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes lc1-roof { 0% { transform: translateY(0) } 33% { transform: translateY(-2px) } 66% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes lc1-door { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes lc1-window { 0% { opacity:.3 } 33% { opacity:.7 } 66% { opacity:.5 } 100% { opacity:.8 } }
@keyframes lc1-mist { 0% { transform: translateX(0) opacity:.4 } 33% { transform: translateX(10px) opacity:.6 } 66% { transform: translateX(-10px) opacity:.3 } 100% { transform: translateX(0) opacity:.5 } }
@keyframes lc1-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-death-chamber {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #000010 100%),
    radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, transparent 70%);
}
.scn-death-chamber .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); animation: dc1-wall 20s ease-in-out infinite alternate; }
.scn-death-chamber .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a0a 100%); animation: dc1-floor 18s ease-in-out infinite; }
.scn-death-chamber .bed { position:absolute; bottom:15%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); animation: dc1-bed 12s ease-in-out infinite; }
.scn-death-chamber .figure { position:absolute; bottom:18%; left:38%; width:24%; height:30%; background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: dc1-figure 8s ease-in-out infinite alternate; }
.scn-death-chamber .window { position:absolute; top:10%; right:15%; width:20%; height:30%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 20px rgba(50,80,100,.3); animation: dc1-window 16s ease-in-out infinite; }
.scn-death-chamber .curtains { position:absolute; top:8%; right:13%; left:63%; height:34%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a0a 100%); border-radius: 30% 30% 0 0; filter: blur(2px); animation: dc1-curtains 10s ease-in-out infinite alternate; }
.scn-death-chamber .candle { position:absolute; bottom:20%; left:20%; width:4%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 12px 4px rgba(255,200,100,.2); animation: dc1-candle 4s ease-in-out infinite alternate; }
@keyframes dc1-wall { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes dc1-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes dc1-bed { 0% { transform: translateY(0) } 33% { transform: translateY(-3px) } 66% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes dc1-figure { 0% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes dc1-window { 0% { opacity:.3 } 33% { opacity:.5 } 66% { opacity:.4 } 100% { opacity:.6 } }
@keyframes dc1-curtains { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }
@keyframes dc1-candle { 0% { transform: scaleY(1) ; box-shadow: 0 0 8px 2px rgba(255,200,100,.15) } 50% { transform: scaleY(1.05) ; box-shadow: 0 0 16px 6px rgba(255,200,100,.3) } 100% { transform: scaleY(1) ; box-shadow: 0 0 10px 3px rgba(255,200,100,.2) } }

/* cairns-speaks */
.scn-cairns-speaks { background: linear-gradient(180deg, #2c1e1a 0%, #1a1210 100%), radial-gradient(ellipse at 50% 100%, #1a1210 0%, transparent 70%); }
.scn-cairns-speaks .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3530 0%, #2c1e1a 100%); }
.scn-cairns-speaks .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a25 0%, #1a1210 100%); }
.scn-cairns-speaks .figure-speaker { position:absolute; bottom:30%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #0e0a08 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-speak 3s ease-in-out infinite; }
.scn-cairns-speaks .figure-listener { position:absolute; bottom:30%; right:25%; width:30px; height:50px; background: linear-gradient(180deg, #0e0a08 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); }
.scn-cairns-speaks .lamp { position:absolute; bottom:45%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #d4a050 0%, #a07030 70%); border-radius:50%; box-shadow: 0 0 20px 6px #a07030, 0 0 40px 12px rgba(160,112,48,0.4); animation: cs-lamp 4s ease-in-out infinite alternate; }
.scn-cairns-speaks .table { position:absolute; bottom:35%; left:38%; width:80px; height:15px; background: linear-gradient(180deg, #5c3a2a 0%, #3a2218 100%); border-radius: 4px; transform: translateX(-50%); }
.scn-cairns-speaks .window-light { position:absolute; top:15%; left:60%; width:50px; height:70px; background: radial-gradient(ellipse, rgba(200,170,120,0.3) 0%, transparent 70%); border-radius: 10px; animation: cs-window 6s ease-in-out infinite; }
.scn-cairns-speaks .shadow-speaker { position:absolute; bottom:10%; left:25%; width:60px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); animation: cs-shadow 3s ease-in-out infinite; }
@keyframes cs-speak { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes cs-lamp { 0% { box-shadow: 0 0 15px 4px #a07030; opacity:0.8; } 50% { box-shadow: 0 0 30px 10px #d4a050; opacity:1; } 100% { box-shadow: 0 0 20px 6px #a07030; opacity:0.9; } }
@keyframes cs-window { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes cs-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }

/* cairns-tells-story */
.scn-cairns-tells-story { background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 100%), radial-gradient(ellipse at 50% 100%, #0f0f1e 0%, transparent 70%); }
.scn-cairns-tells-story .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #2a2030 0%, #14101a 100%); }
.scn-cairns-tells-story .figure-seated { position:absolute; bottom:25%; left:35%; width:35px; height:55px; background: linear-gradient(180deg, #0e0a12 0%, #050308 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cts-sit 8s ease-in-out infinite; }
.scn-cairns-tells-story .candle { position:absolute; bottom:40%; left:50%; width:6px; height:20px; background: linear-gradient(180deg, #d4a050 0%, #a07030 100%); border-radius: 2px; box-shadow: 0 -5px 15px 4px #d4a050; animation: cts-candle 3s ease-in-out infinite alternate; }
.scn-cairns-tells-story .chair { position:absolute; bottom:24%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 10% 10% 5% 5%; }
.scn-cairns-tells-story .table-small { position:absolute; bottom:30%; left:45%; width:50px; height:12px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 3px; }
.scn-cairns-tells-story .wall-shadow { position:absolute; bottom:30%; right:20%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); animation: cts-shadow 8s ease-in-out infinite; }
@keyframes cts-sit { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes cts-candle { 0% { transform: scaleY(1) rotate(-1deg); opacity:0.8; } 50% { transform: scaleY(1.05) rotate(0deg); opacity:1; } 100% { transform: scaleY(1) rotate(1deg); opacity:0.9; } }
@keyframes cts-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* cairns-on-other-man */
.scn-cairns-on-other-man { background: linear-gradient(180deg, #1e1a2e 0%, #12101e 100%), radial-gradient(ellipse at 50% 100%, #12101e 0%, transparent 70%); }
.scn-cairns-on-other-man .bg-hut { position:absolute; inset:0; background: linear-gradient(180deg, #2a2030 0%, #1a1220 100%); }
.scn-cairns-on-other-man .doorway { position:absolute; top:20%; left:40%; width:40px; height:70px; background: #0a0810; border-radius: 5px; border: 3px solid #3a2a1a; }
.scn-cairns-on-other-man .outside-bushes { position:absolute; top:20%; left:40%; width:40px; height:70px; background: radial-gradient(ellipse at 50% 100%, #1a3a1a 0%, #0a1a0a 100%); clip-path: polygon(0% 100%, 20% 60%, 40% 80%, 60% 50%, 80% 70%, 100% 100%); animation: coom-bushes 20s ease-in-out infinite; }
.scn-cairns-on-other-man .figure-hidden { position:absolute; bottom:30%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #0e0a12 0%, #050308 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: coom-hide 2s ease-in-out infinite; }
.scn-cairns-on-other-man .figure-entering { position:absolute; bottom:30%; left:55%; width:25px; height:40px; background: linear-gradient(180deg, #0e0a12 0%, #050308 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: coom-enter 4s ease-in-out infinite; }
.scn-cairns-on-other-man .lantern-floor { position:absolute; bottom:28%; left:50%; width:8px; height:8px; background: radial-gradient(circle, #b08040 0%, #704020 70%); border-radius:50%; box-shadow: 0 0 12px 4px #b08040; animation: coom-lantern 3s ease-in-out infinite alternate; }
.scn-cairns-on-other-man .shadow-hiding { position:absolute; bottom:10%; left:28%; width:30px; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); animation: coom-shadow 2s ease-in-out infinite; }
@keyframes coom-bushes { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes coom-hide { 0% { transform: scale(1) translateX(0); } 25% { transform: scale(0.95) translateX(-1px); } 50% { transform: scale(1) translateX(0); } 75% { transform: scale(1.02) translateX(1px); } 100% { transform: scale(1) translateX(0); } }
@keyframes coom-enter { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes coom-lantern { 0% { box-shadow: 0 0 10px 2px #b08040; opacity:0.8; } 50% { box-shadow: 0 0 18px 6px #d4a050; opacity:1; } 100% { box-shadow: 0 0 10px 2px #b08040; opacity:0.9; } }
@keyframes coom-shadow { 0% { transform: scaleX(1); } 25% { transform: scaleX(1.1); } 50% { transform: scaleX(1); } 75% { transform: scaleX(0.9); } 100% { transform: scaleX(1); } }

/* holmes-concludes */
.scn-holmes-concludes { background: linear-gradient(180deg, #f0e8d8 0%, #d8d0c0 100%), radial-gradient(ellipse at 50% 100%, #d8d0c0 0%, transparent 70%); }
.scn-holmes-concludes .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a8 100%); }
.scn-holmes-concludes .holmes-silhouette { position:absolute; bottom:20%; left:25%; width:40px; height:65px; background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-holmes 10s ease-in-out infinite; }
.scn-holmes-concludes .pipe-smoke { position:absolute; top:38%; left:32%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(200,190,180,0.4) 0%, transparent 80%); filter: blur(5px); animation: hc-smoke 8s ease-in-out infinite; }
.scn-holmes-concludes .chair-holmes { position:absolute; bottom:18%; left:20%; width:50px; height:40px; background: linear-gradient(180deg, #4a3830 0%, #2a1e18 100%); border-radius: 15% 15% 10% 10%; }
.scn-holmes-concludes .watson-silhouette { position:absolute; bottom:20%; right:20%; width:35px; height:55px; background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); }
.scn-holmes-concludes .window-daylight { position:absolute; top:10%; right:15%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(200,190,170,0.3) 0%, transparent 80%); border-radius: 5px; animation: hc-window 12s ease-in-out infinite; }
.scn-holmes-concludes .bookcase { position:absolute; top:10%; left:5%; width:40px; height:90%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 3px; }
@keyframes hc-holmes { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes hc-smoke { 0% { transform: translateX(0) translateY(0) scale(1); opacity:0.4; } 50% { transform: translateX(3px) translateY(-5px) scale(1.2); opacity:0.6; } 100% { transform: translateX(0) translateY(0) scale(1); opacity:0.4; } }
@keyframes hc-window { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* Scene: godfrey-loyalty (tense, bright interior) */
.scn-godfrey-loyalty {
  background: linear-gradient(180deg, #f5e6d3 0%, #d9c2a8 60%, #b8a088 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,220,180,0.8) 0%, transparent 50%);
}
.scn-godfrey-loyalty .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #f0e2d0 0%, #c8b8a0 100%); }
.scn-godfrey-loyalty .wall   { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #e8d8c0 0%, #d0bfa8 100%); box-shadow: inset 0 -10px 20px rgba(0,0,0,0.15); }
.scn-godfrey-loyalty .floor  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a6450 0%, #5a4a3a 100%); border-radius: 10% 10% 0 0; }
.scn-godfrey-loyalty .window { position:absolute; top:10%; left:20%; width:30%; height:45%; background: radial-gradient(circle at 30% 40%, #ffedc0 0%, #c8a878 70%, #7a5a3a 100%); border: 4px solid #5a4a3a; border-radius: 4px; box-shadow: 0 0 40px 10px rgba(255,220,180,0.5); animation: god-window 4s ease-in-out infinite alternate; }
.scn-godfrey-loyalty .bars-shadow { position:absolute; bottom:0; left:20%; width:30%; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 40%, rgba(0,0,0,0.1) 100%); mask: linear-gradient(90deg, transparent 10%, #000 10%, #000 20%, transparent 20%, transparent 30%, #000 30%, #000 40%, transparent 40%, transparent 50%, #000 50%, #000 60%, transparent 60%); animation: god-bars 6s ease-in-out infinite alternate; }
.scn-godfrey-loyalty .figure { position:absolute; bottom:40%; left:60%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: god-figure 3s ease-in-out infinite; }
.scn-godfrey-loyalty .door   { position:absolute; bottom:40%; left:5%; width:15%; height:55%; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
@keyframes god-window  { 0% { opacity:0.9; box-shadow:0 0 30px 5px rgba(255,220,180,0.4); } 50% { opacity:1; box-shadow:0 0 60px 20px rgba(255,220,180,0.7); } 100% { opacity:0.95; box-shadow:0 0 40px 10px rgba(255,220,180,0.5); } }
@keyframes god-bars    { 0% { transform:translateY(0); opacity:0.8; } 50% { transform:translateY(-5px); opacity:0.9; } 100% { transform:translateY(0); opacity:0.7; } }
@keyframes god-figure  { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(15px) rotate(1deg); } 50% { transform:translateX(30px) rotate(-1deg); } 75% { transform:translateX(45px) rotate(2deg); } 100% { transform:translateX(60px) rotate(0); } }

/* Scene: train-to-cambridge (calm, dim interior) */
.scn-train-to-cambridge {
  background: linear-gradient(180deg, #1e2a3a 0%, #2a3848 30%, #3a4a5a 70%, #2a3848 100%),
              radial-gradient(ellipse at 50% 70%, #4a5a6a 0%, transparent 60%);
}
.scn-train-to-cambridge .compartment { position:absolute; inset:0; background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 8px; }
.scn-train-to-cambridge .window-trn { position:absolute; top:15%; left:20%; width:60%; height:35%; background: radial-gradient(circle at 30% 40%, #6a7a8a 0%, #1a2a3a 100%); border: 3px solid #4a5a6a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: trn-window 8s linear infinite; }
.scn-train-to-cambridge .seat { position:absolute; bottom:35%; left:10%; width:80%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); animation: trn-seat 12s ease-in-out infinite alternate; }
.scn-train-to-cambridge .table-trn { position:absolute; bottom:45%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; }
.scn-train-to-cambridge .lamp-trn { position:absolute; top:8%; left:45%; width:10%; height:6%; background: radial-gradient(circle, #f0d080 0%, #c0a060 50%, #5a4a3a 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(240,208,128,0.3); animation: trn-lamp 4s ease-in-out infinite alternate; }
.scn-train-to-cambridge .passenger { position:absolute; bottom:35%; left:15%; width:18px; height:32px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: trn-passenger 6s ease-in-out infinite; }
@keyframes trn-window  { 0% { background-position:0% 0%; } 50% { background-position:100% 100%; } 100% { background-position:0% 0%; } }
@keyframes trn-seat    { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes trn-lamp    { 0% { opacity:0.6; box-shadow:0 0 20px 4px rgba(240,208,128,0.2); } 50% { opacity:1; box-shadow:0 0 40px 12px rgba(240,208,128,0.5); } 100% { opacity:0.7; box-shadow:0 0 25px 6px rgba(240,208,128,0.3); } }
@keyframes trn-passenger { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-1deg); } }

/* Scene: uncle-miser (calm, bright interior) */
.scn-uncle-miser {
  background: linear-gradient(180deg, #f8efe0 0%, #e8d8c0 40%, #d0bfa8 100%),
              radial-gradient(ellipse at 50% 80%, #fff5e0 0%, transparent 50%);
}
.scn-uncle-miser .room-bg-mis { position:absolute; inset:0; background: linear-gradient(135deg, #f5ecd8 0%, #d8c8b0 100%); }
.scn-uncle-miser .hearth { position:absolute; bottom:10%; left:10%; width:20%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.6); }
.scn-uncle-miser .table-mis { position:absolute; bottom:25%; left:40%; width:25%; height:5%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-uncle-miser .chair-mis { position:absolute; bottom:25%; left:40%; width:12%; height:20%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 4px 4px 0 0; }
.scn-uncle-miser .figure-mis { position:absolute; bottom:30%; left:43%; width:16px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mis-figure 8s ease-in-out infinite; }
.scn-uncle-miser .safe { position:absolute; bottom:10%; right:15%; width:20%; height:25%; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border: 2px solid #2a1a0a; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: mis-safe 12s ease-in-out infinite; }
.scn-uncle-miser .cat   { position:absolute; bottom:25%; left:5%; width:12px; height:10px; background: #4a3a2a; border-radius: 50% 50% 40% 40%; animation: mis-cat 6s ease-in-out infinite alternate; }
@keyframes mis-figure { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-3px) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes mis-safe   { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.98); } 100% { transform:scaleY(1); } }
@keyframes mis-cat    { 0% { transform:translateX(0); } 50% { transform:translateX(10px); } 100% { transform:translateX(0); } }

/* Scene: holmes-decides-to-help (calm, bright interior) */
.scn-holmes-decides-to-help {
  background: linear-gradient(180deg, #f0e6d0 0%, #d0c0a8 50%, #b8a890 100%),
              radial-gradient(ellipse at 40% 30%, #fff8e8 0%, transparent 60%);
}
.scn-holmes-decides-to-help .room-bg-hol { position:absolute; inset:0; background: linear-gradient(135deg, #ede3cf 0%, #c8b8a0 100%); }
.scn-holmes-decides-to-help .fireplace { position:absolute; bottom:10%; left:5%; width:25%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.8); }
.scn-holmes-decides-to-help .chair-holmes { position:absolute; bottom:20%; right:30%; width:15%; height:25%; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); border-radius: 6px 6px 0 0; }
.scn-holmes-decides-to-help .chair-visitor { position:absolute; bottom:20%; right:10%; width:15%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6px 6px 0 0; }
.scn-holmes-decides-to-help .table-hol { position:absolute; bottom:15%; right:20%; width:20%; height:5%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 4px; }
.scn-holmes-decides-to-help .lamp-hol { position:absolute; top:8%; right:40%; width:8%; height:10%; background: radial-gradient(circle, #f0c868 0%, #c0a050 60%, #5a4a3a 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(240,200,104,0.4); animation: hol-lamp 3s ease-in-out infinite alternate; }
.scn-holmes-decides-to-help .window-hol { position:absolute; top:10%; left:5%; width:30%; height:40%; background: radial-gradient(circle at 30% 30%, #fff8e0 0%, #d0c0a0 70%, #8a7a6a 100%); border: 3px solid #5a4a3a; border-radius: 4px; box-shadow: 0 0 40px 10px rgba(255,248,224,0.3); animation: hol-window 6s ease-in-out infinite alternate; }
@keyframes hol-lamp { 0% { opacity:0.8; box-shadow:0 0 20px 4px rgba(240,200,104,0.3); } 50% { opacity:1; box-shadow:0 0 40px 12px rgba(240,200,104,0.6); } 100% { opacity:0.85; box-shadow:0 0 25px 6px rgba(240,200,104,0.4); } }
@keyframes hol-window { 0% { opacity:0.9; box-shadow:0 0 30px 5px rgba(255,248,224,0.2); } 50% { opacity:1; box-shadow:0 0 60px 20px rgba(255,248,224,0.5); } 100% { opacity:0.95; box-shadow:0 0 40px 10px rgba(255,248,224,0.3); } }

/* second-clue-in-bedroom */
.scn-second-clue-in-bedroom {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c5a9 50%, #b8a78c 100%),
              radial-gradient(circle at 30% 40%, #fff8e7 0%, transparent 70%);
}
.scn-second-clue-in-bedroom .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #9c8b72 0%, #7a6b55 100%);
  border-top: 2px solid #8b7a60;
}
.scn-second-clue-in-bedroom .back-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #eaddc8 0%, #d4c5a9 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
}
.scn-second-clue-in-bedroom .bed {
  position: absolute; bottom: 30%; left: 10%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #b8a07a 0%, #8d7655 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.scn-second-clue-in-bedroom .bedpost {
  position: absolute; bottom: 55%; width: 8px; height: 25%;
  background: linear-gradient(180deg, #6b5b44 0%, #4a3d2e 100%);
  border-radius: 4px 4px 0 0;
}
.scn-second-clue-in-bedroom .bedpost-l { left: 12%; }
.scn-second-clue-in-bedroom .bedpost-r { left: 46%; }
.scn-second-clue-in-bedroom .window {
  position: absolute; top: 15%; left: 60%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #dce3f0 0%, #bfc9db 100%);
  border: 6px solid #7a6b55;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,220,0.3);
  animation: scb-window 8s ease-in-out infinite alternate;
}
.scn-second-clue-in-bedroom .figure-holmes {
  position: absolute; bottom: 30%; left: 55%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #2c2c35 0%, #1a1a22 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: scb-holmes 5s ease-in-out infinite;
}
.scn-second-clue-in-bedroom .clue-glow {
  position: absolute; bottom: 40%; left: 35%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffe082 0%, #ffb347 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,200,100,0.6);
  animation: scb-glow 2s ease-in-out infinite alternate;
}
.scn-second-clue-in-bedroom .dust {
  position: absolute; top: 20%; left: 0; right: 0; height: 100%;
  background: radial-gradient(ellipse at 30% 20%, rgba(255,240,200,0.08) 0%, transparent 80%);
  filter: blur(4px);
  animation: scb-dust 12s ease-in-out infinite alternate;
}
@keyframes scb-window {
  0% { opacity:0.7; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.02); }
  100% { opacity:0.8; transform: scaleY(0.98); }
}
@keyframes scb-holmes {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(8px) rotate(2deg); }
  60% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes scb-glow {
  0% { opacity:0.6; box-shadow:0 0 10px 5px rgba(255,200,100,0.4); }
  50% { opacity:1; box-shadow:0 0 30px 15px rgba(255,200,100,0.8); }
  100% { opacity:0.7; box-shadow:0 0 15px 8px rgba(255,200,100,0.5); }
}
@keyframes scb-dust {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.05); }
  100% { transform: translateY(5px) scale(0.95); }
}

/* prisoner-in-bedroom */
.scn-prisoner-in-bedroom {
  background: linear-gradient(180deg, #e8dcc8 0%, #c9b99f 50%, #a8977e 100%),
              radial-gradient(ellipse at 70% 50%, #fff5e0 0%, transparent 60%);
}
.scn-prisoner-in-bedroom .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b7a62 0%, #6b5b44 100%);
}
.scn-prisoner-in-bedroom .back-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #d9cbaf 0%, #bfae92 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.12);
}
.scn-prisoner-in-bedroom .wardrobe {
  position: absolute; bottom: 25%; right: 8%; width: 20%; height: 55%;
  background: linear-gradient(90deg, #6b5b44 0%, #524331 60%, #6b5b44 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: prb-ward 6s ease-in-out infinite alternate;
}
.scn-prisoner-in-bedroom .wardrobe-door {
  position: absolute; bottom: 28%; right: 14%; width: 8%; height: 45%;
  background: linear-gradient(180deg, #4a3d2e 0%, #3a2e20 100%);
  border-left: 2px solid #2a1f14;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  transform-origin: left center;
  animation: prb-door 10s ease-in-out infinite alternate;
}
.scn-prisoner-in-bedroom .figure-prisoner {
  position: absolute; bottom: 35%; right: 12%; width: 12px; height: 45px;
  background: linear-gradient(180deg, #1f1f2e 0%, #0d0d18 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: prb-prisoner 7s ease-in-out infinite;
}
.scn-prisoner-in-bedroom .figure-holmes {
  position: absolute; bottom: 30%; left: 25%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #2c2c35 0%, #1a1a22 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: prb-holmes 5s ease-in-out infinite;
}
.scn-prisoner-in-bedroom .window {
  position: absolute; top: 12%; left: 12%; width: 30%; height: 38%;
  background: linear-gradient(180deg, #d0dae8 0%, #b3bed0 100%);
  border: 5px solid #7a6b55;
  border-radius: 3px;
  box-shadow: inset 0 0 25px rgba(255,255,220,0.2);
}
.scn-prisoner-in-bedroom .shadow-corner {
  position: absolute; top: 0; right: 0; width: 35%; height: 100%;
  background: linear-gradient(270deg, rgba(0,0,0,0.25) 0%, transparent 100%);
  animation: prb-shadow 9s ease-in-out infinite alternate;
}
@keyframes prb-ward {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes prb-door {
  0% { transform: rotateY(0deg); }
  30% { transform: rotateY(12deg); }
  70% { transform: rotateY(-5deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes prb-prisoner {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes prb-holmes {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(10px) rotate(2deg); }
  80% { transform: translateX(-5px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes prb-shadow {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.5; }
}

/* alternative-escape-route */
.scn-alternative-escape-route {
  background: linear-gradient(180deg, #c9d6e0 0%, #a4b4c3 50%, #7e8f9e 100%),
              radial-gradient(ellipse at 50% 30%, #e8f0f8 0%, transparent 60%);
}
.scn-alternative-escape-route .sky-outside {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #b8cfe0 0%, #8ca6bc 100%);
  animation: aer-sky 20s ease-in-out infinite alternate;
}
.scn-alternative-escape-route .courtyard-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b7a62 0%, #6b5b44 100%);
  border-top: 4px solid #5a4e3a;
}
.scn-alternative-escape-route .window-frame {
  position: absolute; top: 8%; left: 15%; width: 70%; height: 75%;
  border: 12px solid #5a4e3a;
  border-radius: 6px;
  background: transparent;
  box-shadow: inset 0 0 0 3px #7a6b55;
}
.scn-alternative-escape-route .windowsill {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 6%;
  background: linear-gradient(180deg, #7a6b55 0%, #5a4e3a 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.2);
}
.scn-alternative-escape-route .figure-escaping {
  position: absolute; bottom: 30%; left: 30%; width: 14px; height: 48px;
  background: linear-gradient(180deg, #1f1f2e 0%, #0d0d18 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: aer-escape 4s ease-in-out infinite;
}
.scn-alternative-escape-route .ladder {
  position: absolute; bottom: 12%; left: 28%; width: 20px; height: 55%;
  background: repeating-linear-gradient(90deg, #6b5b44 0px, #6b5b44 4px, transparent 4px, transparent 10px);
  background-color: #4a3d2e;
  border-left: 4px solid #3a2e20;
  border-right: 4px solid #3a2e20;
  transform: rotate(6deg);
  animation: aer-ladder 8s ease-in-out infinite alternate;
}
.scn-alternative-escape-route .ivy {
  position: absolute; top: 10%; right: 20%; width: 20%; height: 70%;
  background: radial-gradient(ellipse at 50% 100%, #4a6741 0%, transparent 70%);
  filter: blur(2px);
  animation: aer-ivy 15s ease-in-out infinite alternate;
}
.scn-alternative-escape-route .cloud-drift {
  position: absolute; top: 2%; left: 0; width: 100px; height: 20px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: aer-cloud 40s linear infinite;
}
@keyframes aer-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.75; }
}
@keyframes aer-escape {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-8px) rotate(5deg); }
  50% { transform: translateY(0) rotate(-3deg); }
  75% { transform: translateY(4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes aer-ladder {
  0% { transform: rotate(4deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(4deg); }
}
@keyframes aer-ivy {
  0% { transform: scaleY(0.95); opacity:0.6; }
  50% { transform: scaleY(1.05); opacity:1; }
  100% { transform: scaleY(0.95); opacity:0.7; }
}
@keyframes aer-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}

/* three-students */
.scn-three-students {
  background: linear-gradient(180deg, #fdf6e3 0%, #e8dcc8 50%, #d0c0a8 100%),
              radial-gradient(circle at 50% 60%, #fffaf0 0%, transparent 50%);
}
.scn-three-students .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #b8a07a 0px, #b8a07a 6px, #a89575 6px, #a89575 12px);
}
.scn-three-students .back-wall-light {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: linear-gradient(180deg, #f2e8d8 0%, #ded2be 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.06);
}
.scn-three-students .desk {
  position: absolute; bottom: 20%; width: 18%; height: 20%;
  background: linear-gradient(180deg, #9c8b72 0%, #7a6b55 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.scn-three-students .desk-left { left: 12%; }
.scn-three-students .desk-center { left: 41%; }
.scn-three-students .desk-right { left: 70%; }
.scn-three-students .student {
  position: absolute; bottom: 22%; width: 14px; height: 44px;
  background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ths-student 6s ease-in-out infinite;
}
.scn-three-students .student-a { left: 17%; animation-delay: 0s; }
.scn-three-students .student-b { left: 46%; animation-delay: -2s; }
.scn-three-students .student-c { left: 75%; animation-delay: -4s; }
.scn-three-students .books {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 4%;
  background: repeating-linear-gradient(90deg, #c8553d 0px, #c8553d 8px, #a0461a 8px, #a0461a 16px, #5e1a1d 16px, #5e1a1d 24px, #702243 24px, #702243 32px);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-three-students .window-sun {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #f5e6d0 0%, #eaddc8 100%);
  border: 6px solid #7a6b55;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,240,200,0.4);
  animation: ths-sun 10s ease-in-out infinite alternate;
}
@keyframes ths-student {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ths-sun {
  0% { opacity:0.7; box-shadow: inset 0 0 20px rgba(255,240,200,0.2); }
  50% { opacity:1; box-shadow: inset 0 0 50px rgba(255,240,200,0.5); }
  100% { opacity:0.8; box-shadow: inset 0 0 30px rgba(255,240,200,0.3); }
}

/* cumulative-effect - calm, bright interior */
.scn-cumulative-effect {
  background: linear-gradient(180deg, #f7f3e8 0%, #e8e0d0 40%, #d4c8b0 100%),
              radial-gradient(ellipse at 50% 20%, #fffef5 0%, transparent 60%);
}
.scn-cumulative-effect .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #eae3d4 0%, #d4c8b0 100%);
  border-bottom: 2px solid #c0b090;
}
.scn-cumulative-effect .window {
  position: absolute; top: 8%; left: 65%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #cfe4f0 0%, #a0c0d0 100%);
  border: 6px solid #b8a890; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.4);
  animation: ce-window 6s ease-in-out infinite alternate;
}
.scn-cumulative-effect .chair {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #8a7050 0%, #6a5030 100%);
  border-radius: 8% 8% 20% 20% / 10% 10% 30% 30%;
  box-shadow: 4px 6px 12px rgba(0,0,0,0.2);
}
.scn-cumulative-effect .figure {
  position: absolute; bottom: 22%; left: 32%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09078 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-figure 8s ease-in-out infinite alternate;
}
.scn-cumulative-effect .lamp {
  position: absolute; bottom: 38%; left: 50%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #f0d88c 0%, #d0b060 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 40px 12px #f0d88c, 0 0 80px 24px rgba(240,216,140,0.3);
  animation: ce-lamp 4s ease-in-out infinite alternate;
}
.scn-cumulative-effect .table {
  position: absolute; bottom: 18%; left: 28%; width: 80px; height: 12px;
  background: linear-gradient(90deg, #7a6040 0%, #9a7a5a 50%, #7a6040 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-cumulative-effect .rug {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 30px;
  background: linear-gradient(90deg, #b8a090 0%, #d0c0b0 20%, #c8b8a0 50%, #d0c0b0 80%, #b8a090 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  opacity: 0.6;
  animation: ce-rug 12s ease-in-out infinite alternate;
}
@keyframes ce-window { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ce-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(0); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes ce-lamp { 0% { box-shadow: 0 0 30px 8px #f0d88c; } 50% { box-shadow: 0 0 50px 16px #f8e4a0; } 100% { box-shadow: 0 0 35px 10px #e0c070; } }
@keyframes ce-rug { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }

/* beeswing-deduction - calm, bright interior */
.scn-beeswing-deduction {
  background: linear-gradient(180deg, #faf5ec 0%, #ebe0d0 40%, #d4c4b0 100%),
              radial-gradient(ellipse at 40% 30%, #fffcf0 0%, transparent 60%);
}
.scn-beeswing-deduction .shelf {
  position: absolute; top: 8%; left: 10%; right: 10%; height: 12px;
  background: linear-gradient(90deg, #b8a088 0%, #d0bca0 50%, #b8a088 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.15);
}
.scn-beeswing-deduction .table {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 10px;
  background: linear-gradient(90deg, #8a7050 0%, #a08060 50%, #8a7050 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
}
.scn-beeswing-deduction .bottle {
  position: absolute; bottom: 28%; left: 35%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 60%, #5a4a2a 100%);
  border-radius: 30% 30% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
  animation: bd-bottle 10s ease-in-out infinite alternate;
}
.scn-beeswing-deduction .glass {
  position: absolute; bottom: 26%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #e8e0d8 0%, #d0c8c0 100%);
  border-radius: 10% 10% 20% 20% / 5% 5% 30% 30%;
  box-shadow: inset 0 0 8px rgba(255,255,255,0.3), 2px 2px 6px rgba(0,0,0,0.2);
}
.scn-beeswing-deduction .glass.clr {
  left: 45%;
  background: linear-gradient(180deg, #e0d8d0 0%, #c8c0b8 100%);
}
.scn-beeswing-deduction .glass.sed {
  left: 58%;
  background: linear-gradient(180deg, #e0d8d0 0%, #c8c0b8 100%);
  overflow: hidden;
}
.scn-beeswing-deduction .glass.sed::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0; height: 8px;
  background: #c0a888;
  border-radius: 0 0 20% 20%;
  animation: bd-sed 6s ease-in-out infinite alternate;
}
.scn-beeswing-deduction .hand {
  position: absolute; bottom: 24%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #d0c0b0 0%, #b8a898 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: bd-hand 8s ease-in-out infinite alternate;
}
.scn-beeswing-deduction .napkin {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 20px;
  background: #f0ece8;
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  transform: rotate(-10deg);
  animation: bd-napkin 12s ease-in-out infinite alternate;
}
@keyframes bd-bottle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bd-sed { 0% { height: 8px; opacity: 0.8; } 50% { height: 12px; opacity: 1; } 100% { height: 6px; opacity: 0.7; } }
@keyframes bd-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes bd-napkin { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-12deg) scale(1); } }

/* return-to-abbey-grange - tense, bright interior */
.scn-return-to-abbey-grange {
  background: linear-gradient(180deg, #e8e0d8 0%, #c8b8a8 40%, #a89880 100%),
              radial-gradient(ellipse at 60% 40%, #f0ece0 0%, transparent 60%);
}
.scn-return-to-abbey-grange .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d8d0c8 0%, #c0b0a0 100%);
}
.scn-return-to-abbey-grange .door {
  position: absolute; bottom: 15%; left: 10%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 4px 0 12px rgba(0,0,0,0.3);
  animation: ra-door 8s ease-in-out infinite alternate;
}
.scn-return-to-abbey-grange .chair {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #7a6040 0%, #5a4020 100%);
  border-radius: 8% 8% 20% 20% / 10% 10% 30% 30%;
  box-shadow: 4px 6px 12px rgba(0,0,0,0.3);
}
.scn-return-to-abbey-grange .detective {
  position: absolute; bottom: 22%; left: 28%; width: 36px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-detect 6s ease-in-out infinite alternate;
}
.scn-return-to-abbey-grange .clock {
  position: absolute; top: 10%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0e8d8 0%, #c0b090 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ra-clock 12s ease-in-out infinite alternate;
}
.scn-return-to-abbey-grange .clock::after {
  content: '';
  position: absolute; top: 50%; left: 50%; width: 2px; height: 12px;
  background: #2a2a2a;
  transform: translate(-50%, -50%);
  animation: ra-hand 30s linear infinite;
}
.scn-return-to-abbey-grange .candle {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0d88c 0%, #d0b060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 6px #f0d88c;
  animation: ra-candle 3s ease-in-out infinite alternate;
}
.scn-return-to-abbey-grange .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 100px; height: 60px;
  background: rgba(0,0,0,0.15);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  filter: blur(8px);
  animation: ra-shadow 10s ease-in-out infinite alternate;
}
@keyframes ra-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }
@keyframes ra-detect { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ra-clock { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ra-hand { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes ra-candle { 0% { box-shadow: 0 0 20px 4px #f0d88c; transform: scaleY(1); } 50% { box-shadow: 0 0 40px 10px #f8e4a0; transform: scaleY(1.05); } 100% { box-shadow: 0 0 25px 6px #e0c070; transform: scaleY(1); } }
@keyframes ra-shadow { 0% { opacity: 0.15; transform: translateX(0); } 50% { opacity: 0.25; transform: translateX(5px); } 100% { opacity: 0.15; transform: translateX(0); } }

/* mantelpiece-climb - tense, bright interior */
.scn-mantelpiece-climb {
  background: linear-gradient(180deg, #d8d0c8 0%, #b8a898 40%, #988878 100%),
              radial-gradient(ellipse at 50% 70%, #f0e0d0 0%, transparent 50%);
}
.scn-mantelpiece-climb .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8b8a8 0%, #b0a090 100%);
}
.scn-mantelpiece-climb .fireplace {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-mantelpiece-climb .mantel {
  position: absolute; bottom: 38%; left: 18%; right: 18%; height: 12px;
  background: linear-gradient(90deg, #8a7050 0%, #a08060 50%, #8a7050 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-mantelpiece-climb .figure {
  position: absolute; bottom: 30%; left: 44%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-climb 8s ease-in-out infinite alternate;
}
.scn-mantelpiece-climb .cord {
  position: absolute; top: 8%; left: 48%; width: 4px; height: 60px;
  background: #a03020;
  border-radius: 2px;
  animation: mc-cord 4s ease-in-out infinite alternate;
}
.scn-mantelpiece-climb .vase {
  position: absolute; bottom: 38%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: mc-vase 12s ease-in-out infinite alternate;
}
.scn-mantelpiece-climb .fire-glow {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #f0a060 0%, #e08030 50%, transparent 70%);
  opacity: 0.4;
  filter: blur(20px);
  animation: mc-fire 6s ease-in-out infinite alternate;
}
@keyframes mc-climb { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-15px) scaleY(1.08); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes mc-cord { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mc-vase { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes mc-fire { 0% { opacity: 0.3; transform: scaleY(0.8); } 50% { opacity: 0.5; transform: scaleY(1.1); } 100% { opacity: 0.35; transform: scaleY(0.85); } }

.scn-holmes-twinkles { background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 100%), radial-gradient(ellipse at 50% 80%, #fff8e8 0%, transparent 80%); height: 100%; }
.scn-holmes-twinkles .room { position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 30%, #fdf8ed 0%, #dacbb5 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.08); animation: ht-room 12s ease-in-out infinite alternate; }
.scn-holmes-twinkles .desk { position: absolute; bottom: 20%; left: 20%; width: 60%; height: 8%; background: linear-gradient(90deg, #8b6f4a 0%, #a38157 50%, #7a5f3e 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: ht-desk 6s ease-in-out infinite; }
.scn-holmes-twinkles .lamp { position: absolute; bottom: 38%; left: 30%; width: 12px; height: 24px; background: linear-gradient(180deg, #d4a373 0%, #b8855e 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 12px rgba(255,220,150,0.5); animation: ht-lamp 3s ease-in-out infinite alternate; }
.scn-holmes-twinkles .books { position: absolute; bottom: 32%; right: 8%; width: 40px; height: 50px; background: linear-gradient(180deg, #5e3a1e 0%, #3e2612 50%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: -4px 0 8px rgba(0,0,0,0.3); }
.scn-holmes-twinkles .armchair { position: absolute; bottom: 18%; left: 8%; width: 50px; height: 60px; background: radial-gradient(ellipse at 50% 40%, #6b4c36 0%, #422d1e 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 4px 4px 12px rgba(0,0,0,0.2); }
.scn-holmes-twinkles .holmes { position: absolute; bottom: 20%; left: 12%; width: 28px; height: 54px; background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ht-holmes 8s ease-in-out infinite; }
.scn-holmes-twinkles .smoke { position: absolute; bottom: 60%; left: 14%; width: 30px; height: 20px; background: radial-gradient(circle, rgba(200,200,180,0.5) 0%, transparent 100%); filter: blur(4px); animation: ht-smoke 7s ease-in-out infinite; }
@keyframes ht-room { 0% { filter: brightness(1); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes ht-desk { 0%,100% { transform: translateX(0); } 50% { transform: translateX(1px); } }
@keyframes ht-lamp { 0% { box-shadow: 0 0 20px 8px rgba(255,220,150,0.4); } 50% { box-shadow: 0 0 40px 20px rgba(255,240,180,0.7); } 100% { box-shadow: 0 0 25px 10px rgba(255,220,150,0.45); } }
@keyframes ht-holmes { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ht-smoke { 0% { transform: translate(0, 0) scale(1); opacity: 0.6; } 50% { transform: translate(3px, -8px) scale(1.2); opacity: 0.3; } 100% { transform: translate(6px, -15px) scale(0.8); opacity: 0; } }

.scn-kidnapping-theory { background: linear-gradient(180deg, #f0e4cc 0%, #d9c6a8 100%), radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 70%); height: 100%; }
.scn-kidnapping-theory .bg-study { position: absolute; inset: 0; background: linear-gradient(135deg, #e3d5c4 0%, #cbbaa7 100%); }
.scn-kidnapping-theory .desk-kt { position: absolute; bottom: 25%; left: 15%; width: 70%; height: 6%; background: linear-gradient(90deg, #7a603f 0%, #9b8059 50%, #6d5335 100%); border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.scn-kidnapping-theory .papers { position: absolute; bottom: 32%; left: 25%; width: 30px; height: 22px; background: #f4ecd8; border-radius: 2px; box-shadow: 1px 1px 4px rgba(0,0,0,0.1); animation: kt-paper 10s ease-in-out infinite; }
.scn-kidnapping-theory .map-roll { position: absolute; bottom: 30%; right: 20%; width: 14px; height: 40px; background: linear-gradient(180deg, #c9a86c 0%, #b0884a 100%); border-radius: 30%; transform: rotate(10deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: kt-map 14s ease-in-out infinite alternate; }
.scn-kidnapping-theory .magnifier { position: absolute; bottom: 36%; left: 45%; width: 18px; height: 22px; background: radial-gradient(circle, #d4d4d4 40%, #a0a0a0 100%); border-radius: 50%; box-shadow: 0 0 12px rgba(0,0,0,0.2); animation: kt-mag 5s ease-in-out infinite; }
.scn-kidnapping-theory .figure-kt { position: absolute; bottom: 22%; left: 10%; width: 22px; height: 48px; background: linear-gradient(180deg, #242424 0%, #101010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: kt-fig 7s ease-in-out infinite; }
@keyframes kt-paper { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-1px) rotate(3deg); } }
@keyframes kt-map { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes kt-mag { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.98); } }
@keyframes kt-fig { 0% { transform: rotate(-1deg) translateX(0); } 25% { transform: rotate(2deg) translateX(2px); } 50% { transform: rotate(0deg) translateX(4px); } 75% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(1deg) translateX(0); } }

.scn-miser-offers-reward { background: linear-gradient(180deg, #d9c7a0 0%, #b89f7a 100%), radial-gradient(ellipse at 30% 70%, #ffebd0 0%, transparent 60%); height: 100%; }
.scn-miser-offers-reward .bg-room { position: absolute; inset: 0; background: linear-gradient(135deg, #cbb594 0%, #a78b6a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.3); }
.scn-miser-offers-reward .chair-mr { position: absolute; bottom: 15%; left: 40%; width: 60px; height: 50px; background: linear-gradient(180deg, #4a3525 0%, #2e1f14 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 4px 4px 12px rgba(0,0,0,0.5); animation: mr-chair 2s ease-in-out infinite alternate; }
.scn-miser-offers-reward .miser { position: absolute; bottom: 20%; left: 42%; width: 24px; height: 44px; background: linear-gradient(180deg, #1a1510 0%, #0d0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mr-miser 1.5s ease-in-out infinite; }
.scn-miser-offers-reward .money-bag { position: absolute; bottom: 25%; left: 48%; width: 20px; height: 16px; background: radial-gradient(ellipse, #b8863c 0%, #8a6220 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: mr-bag 1.2s ease-in-out infinite alternate; }
.scn-miser-offers-reward .coin-glint { position: absolute; bottom: 30%; left: 50%; width: 4px; height: 4px; background: #ffd700; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,215,0,0.6); animation: mr-coin 0.8s ease-in-out infinite; }
.scn-miser-offers-reward .shadow-mr { position: absolute; bottom: 0; left: 30%; width: 40%; height: 8px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); animation: mr-shadow 2s ease-in-out infinite alternate; }
@keyframes mr-chair { 0% { transform: translateY(0); } 100% { transform: translateY(2px); } }
@keyframes mr-miser { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mr-bag { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.1) translateX(2px); } 100% { transform: scale(0.95) translateX(-1px); } }
@keyframes mr-coin { 0%,100% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } }
@keyframes mr-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 100% { opacity: 0.6; transform: scaleX(1.2); } }

.scn-telegraph-office { background: linear-gradient(180deg, #b8bfc6 0%, #8d959c 100%), radial-gradient(ellipse at 50% 0%, #d0d7de 0%, transparent 80%); height: 100%; }
.scn-telegraph-office .sky-to { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #c4cad1 0%, #a3abb3 100%); animation: to-sky 20s ease-in-out infinite alternate; }
.scn-telegraph-office .building { position: absolute; bottom: 0; left: 20%; width: 60%; height: 60%; background: linear-gradient(180deg, #6e7a82 0%, #535e66 100%); border-radius: 8% 8% 0 0; box-shadow: -2px 0 12px rgba(0,0,0,0.2); }
.scn-telegraph-office .door { position: absolute; bottom: 0; left: 40%; width: 20%; height: 35%; background: #3a434b; border-radius: 10% 10% 0 0; box-shadow: inset 0 0 12px rgba(0,0,0,0.4); }
.scn-telegraph-office .window-to { position: absolute; bottom: 45%; left: 35%; width: 30%; height: 18%; background: linear-gradient(180deg, #7b8893 0%, #5c6872 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-telegraph-office .sign-to { position: absolute; bottom: 70%; left: 45%; width: 10%; height: 6%; background: #4a545e; border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,0.4); }
.scn-telegraph-office .pavement { position: absolute; bottom: 0; left: 0; right: 0; height: 8%; background: linear-gradient(180deg, #7a8085 0%, #5c6166 100%); box-shadow: 0 -2px 8px rgba(0,0,0,0.2); }
.scn-telegraph-office .holmes-to { position: absolute; bottom: 10%; left: 30%; width: 18px; height: 40px; background: linear-gradient(180deg, #1c1e20 0%, #0f1112 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: to-fig 6s ease-in-out infinite; }
.scn-telegraph-office .watson { position: absolute; bottom: 10%; left: 38%; width: 18px; height: 40px; background: linear-gradient(180deg, #2a2e31 0%, #1b1e20 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: to-fig 6s ease-in-out infinite reverse; }
@keyframes to-sky { 0% { opacity: 0.8; filter: brightness(0.95); } 50% { opacity: 0.9; filter: brightness(1.05); } 100% { opacity: 0.85; filter: brightness(1); } }
@keyframes to-fig { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }

.scn-the-three-men { 
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 50%, #b89a7a 100%), radial-gradient(ellipse at 70% 40%, rgba(200,180,150,0.3) 0%, transparent 70%);
}
.scn-the-three-men .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d4b896, #e3cdb5); }
.scn-the-three-men .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b89a7a, #8a7054); }
.scn-the-three-men .window { position:absolute; top:10%; right:10%; width:25%; height:40%; background: radial-gradient(ellipse at center, #fff8e0 0%, #c0b090 70%); border: 4px solid #7a6348; box-shadow: inset 0 0 30px rgba(255,248,224,0.4); }
.scn-the-three-men .door { position:absolute; bottom:30%; left:15%; width:16%; height:70%; background: linear-gradient(180deg, #6b4f32, #4a3622); border-radius: 6% 6% 0 0; box-shadow: inset -6px 0 10px rgba(0,0,0,0.3); }
.scn-the-three-men .figure { position:absolute; bottom:30%; height:50%; width:10%; background: linear-gradient(180deg, #2a221a 0%, #13100c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ttm-enter 6s ease-out forwards; }
.scn-the-three-men .figure-a { left:25%; animation-delay:0s; }
.scn-the-three-men .figure-b { left:38%; animation-delay:2s; }
.scn-the-three-men .figure-c { left:51%; animation-delay:4s; }
.scn-the-three-men .door { animation: ttm-door 2s ease-out 0s 1; }
@keyframes ttm-enter {
  0% { transform: translateX(-100px) scaleX(0.5); opacity:0; }
  30% { transform: translateX(0) scaleX(1.1); opacity:1; }
  50% { transform: translateX(0) scaleX(0.9); opacity:1; }
  70% { transform: translateX(0) scaleX(1.02); opacity:1; }
  100% { transform: translateX(0) scaleX(1); opacity:1; }
}
@keyframes ttm-door {
  0% { transform: rotateY(-80deg); }
  100% { transform: rotateY(0); }
}

.scn-patrick-cairns-enters {
  background: linear-gradient(180deg, #e8d5b0 0%, #c4a67a 50%, #a0805a 100%), radial-gradient(ellipse at 30% 60%, rgba(200,180,140,0.4) 0%, transparent 80%);
}
.scn-patrick-cairns-enters .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #d4b896, #ba9c78); }
.scn-patrick-cairns-enters .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a0805a, #7a6040); }
.scn-patrick-cairns-enters .door { position:absolute; bottom:25%; left:10%; width:20%; height:75%; background: linear-gradient(180deg, #705038, #4a3420); border-radius: 8% 8% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.4); transform-origin: left center; animation: pce-dooropen 3s ease-out forwards; }
.scn-patrick-cairns-enters .shadow { position:absolute; bottom:25%; left:35%; width:30%; height:10%; background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(10px); animation: pce-shadow 4s ease-in-out infinite alternate; }
.scn-patrick-cairns-enters .figure { position:absolute; bottom:25%; left:45%; width:16%; height:70%; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 55% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pce-breathe 4s ease-in-out infinite; }
.scn-patrick-cairns-enters .cap { position:absolute; bottom:50%; left:43%; width:10%; height:8%; background: #2a2018; border-radius: 30% 30% 0 0 / 50% 50% 0 0; transform: rotate(-15deg); animation: pce-cap 2s ease-in-out infinite; }
.scn-patrick-cairns-enters .glint { position:absolute; top:20%; left:48%; width:2%; height:2%; background: #fff; border-radius:50%; box-shadow: 0 0 10px 4px rgba(255,255,255,0.3); animation: pce-glint 3s ease-in-out infinite; }
@keyframes pce-dooropen { 0% { transform: scaleX(0); } 100% { transform: scaleX(1); } }
@keyframes pce-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(0.8); opacity:0.8; } 100% { transform: scaleX(1.1); opacity:0.4; } }
@keyframes pce-breathe { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } }
@keyframes pce-cap { 0%,100% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-20deg) translateX(2px); } }
@keyframes pce-glint { 0%,100% { opacity:0; } 30% { opacity:1; } 70% { opacity:0; } }

.scn-holmes-trick {
  background: linear-gradient(180deg, #f0e0c8 0%, #d4b896 50%, #b89a7a 100%), radial-gradient(ellipse at 60% 40%, rgba(200,180,140,0.3) 0%, transparent 70%);
}
.scn-holmes-trick .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #c4a67a, #d8c0a0); }
.scn-holmes-trick .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b89a7a, #8a7054); }
.scn-holmes-trick .table { position:absolute; bottom:35%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #6b4f32, #4a3622); border-radius: 4% 4% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-holmes-trick .paper { position:absolute; bottom:40%; left:30%; width:25%; height:12%; background: #f5f0e0; transform: rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: ht-paper 2s ease-in-out infinite; }
.scn-holmes-trick .pen { position:absolute; bottom:42%; left:45%; width:2%; height:14%; background: linear-gradient(180deg, #2a2018, #1a1410); transform: rotate(20deg); transform-origin: bottom center; animation: ht-pen 3s ease-in-out infinite; }
.scn-holmes-trick .holmes { position:absolute; bottom:30%; right:22%; width:14%; height:60%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-lean 4s ease-in-out infinite; }
.scn-holmes-trick .seaman { position:absolute; bottom:30%; left:25%; width:18%; height:65%; background: linear-gradient(180deg, #2a221a 0%, #14100c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-stoop 5s ease-in-out infinite; }
@keyframes ht-paper { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes ht-pen { 0%,100% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(15deg) translateX(1px); } }
@keyframes ht-lean { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-8px) rotate(5deg); } }
@keyframes ht-stoop { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(3deg); } }

.scn-holmes-apologizes {
  background: linear-gradient(180deg, #fff8e0 0%, #f0d8a8 50%, #d4b890 100%), radial-gradient(ellipse at 80% 50%, rgba(255,248,224,0.4) 0%, transparent 70%);
}
.scn-holmes-apologizes .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #f0d8a8, #ffe8c8); }
.scn-holmes-apologizes .window { position:absolute; top:8%; left:70%; width:20%; height:40%; background: radial-gradient(ellipse at center, #fff8e0 0%, #c0b090 70%); border: 4px solid #8a7054; box-shadow: inset 0 0 30px rgba(255,248,224,0.4); }
.scn-holmes-apologizes .table { position:absolute; bottom:30%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #8a7054, #6b4f32); border-radius: 4% 4% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-holmes-apologizes .plate { position:absolute; bottom:38%; left:30%; width:20%; height:12%; background: #f5f0e0; border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: ha-plate 6s ease-in-out infinite; }
.scn-holmes-apologizes .eggs { position:absolute; bottom:40%; left:32%; width:10%; height:8%; background: radial-gradient(circle, #f0c040 0%, #d09030 70%); border-radius: 50%; box-shadow: 0 0 10px rgba(240,192,64,0.5); animation: ha-eggs 3s ease-in-out infinite; }
.scn-holmes-apologizes .holmes { position:absolute; bottom:25%; right:20%; width:15%; height:55%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-bow 4s ease-in-out infinite; }
.scn-holmes-apologizes .hopkins { position:absolute; bottom:25%; left:25%; width:16%; height:55%; background: linear-gradient(180deg, #2a221a 0%, #14100c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-sit 4s ease-in-out infinite; }
@keyframes ha-plate { 0%,100% { transform: rotate(0) translateY(0); } 30% { transform: rotate(2deg) translateY(-4px); } 60% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes ha-eggs { 0%,100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes ha-bow { 0%,100% { transform: rotate(0); } 25% { transform: rotate(-10deg) translateX(-5px); } 75% { transform: rotate(5deg) translateX(3px); } }
@keyframes ha-sit { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }

/* holmes-reveals-knowledge */
.scn-holmes-reveals-knowledge {
  background:
    linear-gradient(180deg, #1a1613 0%, #2b221c 40%, #3d3227 100%),
    radial-gradient(ellipse at 60% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-holmes-reveals-knowledge .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(135deg, #2a1e14 0%, #3b2c1f 60%, #1e1410 100%); }
.scn-holmes-reveals-knowledge .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #1a110a 0%, #2c1f12 100%); border-radius: 30% 70% 0 0 / 20% 80% 0 0; }
.scn-holmes-reveals-knowledge .table { position:absolute; bottom:28%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #4a3522 0%, #2e1e0f 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 6px 16px rgba(0,0,0,.6); animation: hrk-table 8s ease-in-out infinite; }
.scn-holmes-reveals-knowledge .armchair-silhouette { position:absolute; bottom:18%; left:18%; width:22%; height:40%; background: linear-gradient(180deg, #0d0a07 0%, #1a130d 100%); border-radius: 60% 60% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 -10px 30px rgba(0,0,0,.5); }
.scn-holmes-reveals-knowledge .holmes-silhouette { position:absolute; bottom:15%; left:62%; width:16%; height:45%; background: linear-gradient(180deg, #0d0906 0%, #1a110b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hrk-holmes 6s ease-in-out infinite alternate; }
.scn-holmes-reveals-knowledge .cigarette-glow { position:absolute; bottom:40%; left:68%; width:4px; height:4px; background: radial-gradient(circle, #e06b2a 0%, #c8541a 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 6px rgba(224,107,42,.5), 0 0 24px 12px rgba(200,84,26,.2); animation: hrk-cglow 2s ease-in-out infinite alternate; }
.scn-holmes-reveals-knowledge .lamp-glow { position:absolute; bottom:35%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #f0cd80 0%, #d4a54a 40%, transparent 80%); border-radius:50%; filter: blur(4px); animation: hrk-lamp 5s ease-in-out infinite alternate; }
.scn-holmes-reveals-knowledge .shadow-curtain-left { position:absolute; bottom:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, rgba(10,7,5,.8) 0%, transparent 100%); animation: hrk-shadowcurtain 12s ease-in-out infinite alternate; }

@keyframes hrk-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes hrk-holmes { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes hrk-cglow { 0% { box-shadow: 0 0 8px 4px rgba(224,107,42,.4); opacity: .6; } 50% { box-shadow: 0 0 20px 10px rgba(224,107,42,.7); opacity: 1; } 100% { box-shadow: 0 0 12px 6px rgba(224,107,42,.5); opacity: .8; } }
@keyframes hrk-lamp { 0%,100% { transform: scale(1) rotate(0deg); opacity: .7; } 50% { transform: scale(1.1) rotate(5deg); opacity: 1; } }
@keyframes hrk-shadowcurtain { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }

/* williamson-denial (tense) */
.scn-williamson-denial {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #1c1410 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-williamson-denial .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #1f1610 0%, #2e2218 60%, #14100c 100%); }
.scn-williamson-denial .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #100a06 0%, #1f140e 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-williamson-denial .chair-shadow { position:absolute; bottom:18%; left:10%; width:25%; height:45%; background: linear-gradient(180deg, #0a0805 0%, #16100a 100%); border-radius: 40% 40% 30% 30% / 40% 40% 50% 50%; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-williamson-denial .williamson-figure { position:absolute; bottom:12%; left:35%; width:18%; height:50%; background: linear-gradient(180deg, #0d0906 0%, #1a110b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wld-will 2s ease-in-out infinite alternate; }
.scn-williamson-denial .carruthers-figure { position:absolute; bottom:12%; right:25%; width:18%; height:48%; background: linear-gradient(180deg, #120e0a 0%, #1c150f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wld-carr 2.5s ease-in-out infinite alternate; }
.scn-williamson-denial .pointing-hand { position:absolute; bottom:38%; left:44%; width:10px; height:16px; background: linear-gradient(180deg, #0d0906 0%, #1a110b 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; transform: rotate(-20deg); animation: wld-point 0.8s ease-in-out infinite alternate; }
.scn-williamson-denial .table-lamp-glow { position:absolute; bottom:30%; right:15%; width:20px; height:20px; background: radial-gradient(circle, #e0a040 0%, #b07030 40%, transparent 80%); border-radius:50%; filter: blur(2px); animation: wld-lamp 3s ease-in-out infinite alternate; }
.scn-williamson-denial .tension-vignette { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(10,5,2,.6) 100%); animation: wld-vignette 4s ease-in-out infinite alternate; }

@keyframes wld-will { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-5px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes wld-carr { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes wld-point { 0% { transform: rotate(-25deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.1); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes wld-lamp { 0%,100% { transform: scale(1); opacity: .7; } 50% { transform: scale(1.15); opacity: 1; } }
@keyframes wld-vignette { 0%,100% { opacity: .5; } 50% { opacity: .8; } }

/* holmes-continues (calm, dim-interior with fireplace) */
.scn-holmes-continues {
  background:
    linear-gradient(180deg, #1a1613 0%, #2b221c 40%, #3d3227 100%),
    radial-gradient(ellipse at 70% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-holmes-continues .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(135deg, #2a1e14 0%, #3b2c1f 60%, #1e1410 100%); }
.scn-holmes-continues .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #1a110a 0%, #2c1f12 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; }
.scn-holmes-continues .fireplace-glow { position:absolute; bottom:35%; left:10%; width:25%; height:30%; background: radial-gradient(ellipse at 30% 50%, #e06020 0%, #c04010 30%, #2a1a0a 70%, transparent 100%); filter: blur(6px); animation: hc-fire 4s ease-in-out infinite alternate; }
.scn-holmes-continues .carruthers-seated { position:absolute; bottom:18%; left:45%; width:18%; height:40%; background: linear-gradient(180deg, #0d0906 0%, #1a110b 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hc-seated1 7s ease-in-out infinite alternate; }
.scn-holmes-continues .williamson-seated { position:absolute; bottom:18%; right:30%; width:18%; height:40%; background: linear-gradient(180deg, #0f0b07 0%, #1c140d 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hc-seated2 9s ease-in-out infinite alternate; }
.scn-holmes-continues .holmes-seated { position:absolute; bottom:18%; left:25%; width:18%; height:42%; background: linear-gradient(180deg, #0a0704 0%, #16100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-seated3 6s ease-in-out infinite alternate; }
.scn-holmes-continues .mantel-shadow { position:absolute; bottom:38%; left:8%; width:28%; height:12%; background: linear-gradient(180deg, #1a120a 0%, transparent 100%); border-radius: 40% 40% 0 0; animation: hc-mantel 10s ease-in-out infinite alternate; }
.scn-holmes-continues .smoke-spiral { position:absolute; top:20%; left:18%; width:60px; height:60px; background: radial-gradient(circle at 50% 50%, rgba(200,180,160,.3) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: hc-smoke 15s ease-in-out infinite; }

@keyframes hc-fire { 0% { transform: scale(1); opacity: .6; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(1.1); opacity: .8; } }
@keyframes hc-seated1 { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes hc-seated2 { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hc-seated3 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hc-mantel { 0%,100% { opacity: .5; } 50% { opacity: .8; } }
@keyframes hc-smoke { 0% { transform: translateY(0) translateX(0) rotate(0deg) scale(1); opacity: .3; } 50% { transform: translateY(-20px) translateX(10px) rotate(180deg) scale(1.5); opacity: .1; } 100% { transform: translateY(0) translateX(0) rotate(360deg) scale(1); opacity: .3; } }

/* holmes-sums-up (calm, dim-interior, desk scene) */
.scn-holmes-sums-up {
  background:
    linear-gradient(180deg, #1a1613 0%, #2b221c 40%, #3d3227 100%),
    radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-holmes-sums-up .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #2a1e14 0%, #3b2c1f 60%, #1e1410 100%); }
.scn-holmes-sums-up .desk { position:absolute; bottom:15%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #4a3522 0%, #2e1e0f 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 10px 30px rgba(0,0,0,.7); animation: hsu-desk 10s ease-in-out infinite alternate; }
.scn-holmes-sums-up .desk-lamp { position:absolute; bottom:30%; left:25%; width:24px; height:20px; background: radial-gradient(circle, #f0cd80 0%, #d4a54a 40%, transparent 70%); border-radius:50%; filter: blur(2px); animation: hsu-lamp 4s ease-in-out infinite alternate; }
.scn-holmes-sums-up .holmes-standing { position:absolute; bottom:5%; left:55%; width:18%; height:50%; background: linear-gradient(180deg, #0d0906 0%, #1a110b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsu-holmes 8s ease-in-out infinite alternate; }
.scn-holmes-sums-up .shadow-accused { position:absolute; bottom:5%; right:10%; width:20%; height:45%; background: linear-gradient(180deg, #0a0704 0%, #120c07 100%); border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: hsu-accused 10s ease-in-out infinite alternate; }
.scn-holmes-sums-up .papers-pile { position:absolute; bottom:18%; left:30%; width:15%; height:6%; background: linear-gradient(90deg, #d4c8b0 0%, #b0a08a 50%, #8a7a66 100%); border-radius: 4%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: hsu-papers 6s ease-in-out infinite; }
.scn-holmes-sums-up .air-of-finality { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, transparent 40%, rgba(10,6,3,.4) 100%); animation: hsu-finality 12s ease-in-out infinite alternate; }

@keyframes hsu-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hsu-lamp { 0% { transform: scale(1) rotate(0deg); opacity: .7; } 50% { transform: scale(1.1) rotate(5deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); opacity: .8; } }
@keyframes hsu-holmes { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes hsu-accused { 0% { transform: translateY(0) rotate(0deg); opacity: .7; } 50% { transform: translateY(-3px) rotate(2deg); opacity: .9; } 100% { transform: translateY(0) rotate(0deg); opacity: .8; } }
@keyframes hsu-papers { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes hsu-finality { 0%,100% { opacity: .3; } 50% { opacity: .6; } }

.scn-huxtable-narrates {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #b8a078 40%, #8a6d4e 100%),
    radial-gradient(ellipse at 80% 30%, #ffe0b0 0%, transparent 60%);
}
.scn-huxtable-narrates .wall  {
  position:absolute; inset:0; background: linear-gradient(180deg, #c8b898 0%, #9a7a5a 100%); opacity:0.6;
}
.scn-huxtable-narrates .window {
  position:absolute; top:5%; left:10%; width:40%; height:35%; background: radial-gradient(circle at 50% 30%, #e0f0ff 0%, #a8c8ee 80%); border:6px solid #6a4a2a; border-radius:4px; box-shadow:inset 0 0 20px rgba(255,255,200,0.3), 0 0 30px rgba(200,220,255,0.4); animation: hxn1-sunlight 8s ease-in-out infinite alternate;
}
.scn-huxtable-narrates .desk  {
  position:absolute; bottom:10%; left:15%; width:55%; height:6%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,0.6); transform: perspective(60deg) rotateX(5deg);
}
.scn-huxtable-narrates .lamp  {
  position:absolute; bottom:16%; left:28%; width:10px; height:25px; background: #c8a058; border-radius:50% 50% 10% 10%; box-shadow:0 -4px 12px rgba(255,200,100,0.7); animation: hxn1-flicker 3s ease-in-out infinite;
}
.scn-huxtable-narrates .figure {
  position:absolute; bottom:16%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hxn1-bob 4s ease-in-out infinite;
}
.scn-huxtable-narrates .chair {
  position:absolute; bottom:10%; right:20%; width:25%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%); border-radius:20% 20% 5% 5%; box-shadow:0 4px 6px rgba(0,0,0,0.4);
}
.scn-huxtable-narrates .bookshelf {
  position:absolute; top:8%; right:5%; width:18%; height:40%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:2px; box-shadow:inset -2px 0 4px rgba(0,0,0,0.5);
}
.scn-huxtable-narrates .clock {
  position:absolute; top:6%; right:8%; width:8%; height:10%; background: #8a6a3a; border-radius:50%; border:3px solid #4a2a0a; box-shadow:0 0 8px rgba(0,0,0,0.3); animation: hxn1-swing 12s ease-in-out infinite;
}
@keyframes hxn1-sunlight { 0%,100% { opacity:0.8; transform:scale(1,0.98); } 50% { opacity:1; transform:scale(1,1.02); } }
@keyframes hxn1-flicker { 0%,100% { opacity:0.9; transform:translateY(0); } 30% { opacity:1; transform:translateY(-1px); } 60% { opacity:0.8; transform:translateY(1px); } }
@keyframes hxn1-bob { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes hxn1-swing { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }

.scn-huxtable-describes-boy {
  background:
    linear-gradient(180deg, #f5e1c0 0%, #dab888 40%, #bc9864 100%),
    radial-gradient(ellipse at 30% 20%, #fff5e0 0%, transparent 60%);
}
.scn-huxtable-describes-boy .wall  {
  position:absolute; inset:0; background: linear-gradient(180deg, #ebd4b0 0%, #c8a870 100%); opacity:0.5;
}
.scn-huxtable-describes-boy .window-sun {
  position:absolute; top:4%; left:8%; width:45%; height:38%; background: radial-gradient(circle at 50% 20%, #fffbe0 0%, #e8d4a0 60%, #c0a878 100%); border:5px solid #8a6a3a; border-radius:6px; box-shadow:inset 0 0 20px #fffbe0, 0 0 40px rgba(255,250,200,0.3); animation: hxb2-calm 10s ease-in-out infinite alternate;
}
.scn-huxtable-describes-boy .desk-book {
  position:absolute; bottom:12%; left:18%; width:40%; height:5%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,0.3);
}
.scn-huxtable-describes-boy .vase {
  position:absolute; bottom:17%; left:25%; width:10px; height:20px; background: #b09868; border-radius:40% 40% 10% 10%; box-shadow:0 2px 4px rgba(0,0,0,0.2);
}
.scn-huxtable-describes-boy .flower {
  position:absolute; bottom:17%; left:25%; width:4px; height:8px; background: #e8a0a0; border-radius:50%; box-shadow: 0 0 6px rgba(232,160,160,0.5); transform: translateX(-2px); animation: hxb2-sway 6s ease-in-out infinite;
}
.scn-huxtable-describes-boy .chair {
  position:absolute; bottom:10%; right:22%; width:20%; height:18%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:20% 20% 5% 5%; box-shadow:0 4px 6px rgba(0,0,0,0.3);
}
.scn-huxtable-describes-boy .boy-sit {
  position:absolute; bottom:12%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hxb2-breathe 8s ease-in-out infinite;
}
@keyframes hxb2-calm { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes hxb2-sway { 0%,100% { transform: translateX(-2px) rotate(0deg); } 50% { transform: translateX(2px) rotate(10deg); } }
@keyframes hxb2-breathe { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } }

.scn-huxtable-on-disappearance {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2440 40%, #4a3a5a 100%),
    radial-gradient(ellipse at 40% 60%, #2a2440 0%, transparent 70%);
}
.scn-huxtable-on-disappearance .wall-night {
  position:absolute; inset:0; background: linear-gradient(180deg, #1c1c30 0%, #282040 100%); opacity:0.8;
}
.scn-huxtable-on-disappearance .moon-window {
  position:absolute; top:4%; right:10%; width:35%; height:30%; background: radial-gradient(circle at 70% 20%, #e0e8f0 0%, #8090a8 70%, #304050 100%); border:5px solid #4a3a2a; border-radius:6px; box-shadow:inset 0 0 30px #8090a8, 0 0 50px rgba(128,144,168,0.3); animation: hxd3-moon 12s ease-in-out infinite alternate;
}
.scn-huxtable-on-disappearance .desk-candle {
  position:absolute; bottom:10%; left:20%; width:40%; height:4%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:2px;
}
.scn-huxtable-on-disappearance .flame {
  position:absolute; bottom:14%; left:22%; width:6px; height:12px; background: radial-gradient(circle, #ffd080 0%, #c08030 100%); border-radius:50%; box-shadow:0 0 20px #ffb040, 0 0 40px rgba(255,176,64,0.4); animation: hxd3-flicker 2s ease-in-out infinite;
}
.scn-huxtable-on-disappearance .empty-chair {
  position:absolute; bottom:10%; right:15%; width:18%; height:16%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:20% 20% 5% 5%; box-shadow:0 4px 6px rgba(0,0,0,0.4);
}
.scn-huxtable-on-disappearance .coat {
  position:absolute; top:14%; left:5%; width:12%; height:18%; background: #3a2a1a; border-radius:30% 30% 10% 10%; box-shadow:0 2px 4px rgba(0,0,0,0.5); animation: hxd3-sway 8s ease-in-out infinite;
}
.scn-huxtable-on-disappearance .figure-stand {
  position:absolute; bottom:10%; left:40%; width:28px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hxd3-pace 6s ease-in-out infinite;
}
.scn-huxtable-on-disappearance .clock-tick {
  position:absolute; top:8%; left:50%; width:8%; height:8%; background: #5a4a3a; border-radius:50%; border:2px solid #2a1a0a; box-shadow:0 0 4px rgba(0,0,0,0.3); animation: hxd3-tick 2s steps(2) infinite;
}
@keyframes hxd3-moon { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes hxd3-flicker { 0%,100% { opacity:0.8; transform: scale(1,1); } 25% { opacity:1; transform: scale(1.1,1.3); } 75% { opacity:0.7; transform: scale(0.9,0.8); } }
@keyframes hxd3-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } }
@keyframes hxd3-pace { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(-2deg); } }
@keyframes hxd3-tick { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }

.scn-huxtable-on-german-master {
  background:
    linear-gradient(180deg, #1a1020 0%, #2a1a30 40%, #3a2040 100%),
    radial-gradient(ellipse at 20% 60%, #2a1a30 0%, transparent 70%);
}
.scn-huxtable-on-german-master .room-dim {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a1220 0%, #2a1a34 100%); opacity:0.8;
}
.scn-huxtable-on-german-master .bed {
  position:absolute; bottom:8%; left:15%; width:50%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.5);
}
.scn-huxtable-on-german-master .desk-lamp {
  position:absolute; bottom:10%; right:10%; width:30%; height:4%; background: #2a1a0a; border-radius:2px;
}
.scn-huxtable-on-german-master .lamp-glow {
  position:absolute; bottom:14%; right:12%; width:8px; height:14px; background: radial-gradient(circle, #d0a050 0%, #806030 100%); border-radius:30% 30% 10% 10%; box-shadow:0 0 20px #d0a050, 0 0 40px rgba(208,160,80,0.4); animation: hxg4-glint 4s ease-in-out infinite;
}
.scn-huxtable-on-german-master .wardrobe {
  position:absolute; top:8%; left:4%; width:14%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:2px; box-shadow:inset -2px 0 4px rgba(0,0,0,0.4);
}
.scn-huxtable-on-german-master .figure-door {
  position:absolute; bottom:10%; left:10%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: hxg4-shift 8s ease-in-out infinite;
}
.scn-huxtable-on-german-master .door-a, .scn-huxtable-on-german-master .door-b {
  position:absolute; bottom:10%; left:10%; width:8px; height:16px; background: #4a3a2a; border-radius:2px; box-shadow:0 0 4px rgba(0,0,0,0.3);
}
.scn-huxtable-on-german-master .door-a {
  left:8%; animation: hxg4-creak 6s ease-in-out infinite;
}
.scn-huxtable-on-german-master .door-b {
  left:12%; animation: hxg4-creak 6s ease-in-out infinite 3s;
}
@keyframes hxg4-glint { 0%,100% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1,1.2); } }
@keyframes hxg4-shift { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(-2deg); } }
@keyframes hxg4-creak { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } }

/* following-brougham - starlit outdoor, calm */
.scn-following-brougham {
  background: linear-gradient(180deg, #0a0d2e 0%, #12183a 40%, #1b2248 100%), radial-gradient(ellipse at 50% 100%, #2a3a5e 0%, transparent 70%);
}
.scn-following-brougham .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0b0f33 0%, #17204a 100%);
  animation: fb-sky 10s ease-in-out infinite alternate;
}
.scn-following-brougham .field-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a140a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: fb-field 14s ease-in-out infinite alternate;
}
.scn-following-brougham .road {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 8%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: perspective(200px) scaleX(1.2);
}
.scn-following-brougham .carriage {
  position: absolute; bottom: 25%; left: 20%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fb-carriage 6s ease-in-out infinite;
}
.scn-following-brougham .carriage-light {
  position: absolute; bottom: 27%; left: 22%; width: 8px; height: 8px;
  background: radial-gradient(circle, #b0a0e0 0%, #6050a0 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(96,80,160,0.6), 0 0 40px 12px rgba(96,80,160,0.3);
  animation: fb-light 3s ease-in-out infinite alternate;
}
.scn-following-brougham .rider {
  position: absolute; bottom: 24%; left: 50%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fb-rider 4s ease-in-out infinite;
}
.scn-following-brougham .rider-lantern {
  position: absolute; bottom: 30%; left: 48%; width: 5px; height: 5px;
  background: #d0c0e0; border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(208,192,224,0.7);
  animation: fb-lantern 4s ease-in-out infinite;
}
.scn-following-brougham .hedge-front {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #1e2e1e 0%, #0e1a0e 100%);
  border-radius: 20% 30% 0 0 / 50% 60% 0 0;
  filter: blur(1px);
  animation: fb-hedge 20s linear infinite alternate;
}
.scn-following-brougham .hedge-back {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #152215 0%, #0a120a 100%);
  border-radius: 30% 40% 0 0 / 40% 50% 0 0;
  transform: scale(0.95);
  opacity: 0.6;
  animation: fb-hedge 25s linear infinite alternate-reverse;
}
@keyframes fb-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes fb-field { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes fb-carriage { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fb-light { 0% { box-shadow: 0 0 16px 4px rgba(96,80,160,0.5); } 50% { box-shadow: 0 0 28px 8px rgba(96,80,160,0.8); } 100% { box-shadow: 0 0 20px 5px rgba(96,80,160,0.6); } }
@keyframes fb-rider { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes fb-lantern { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes fb-hedge { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }

/* doctor-outwits - starlit outdoor, calm, halted rider */
.scn-doctor-outwits {
  background: linear-gradient(180deg, #0a0d2e 0%, #12183a 40%, #1b2248 100%), radial-gradient(ellipse at 30% 100%, #2a3a5e 0%, transparent 70%);
}
.scn-doctor-outwits .night-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0b0f33 0%, #17204a 100%);
  animation: do-sky 12s ease-in-out infinite alternate;
}
.scn-doctor-outwits .field-bg {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a140a 100%);
  border-radius: 70% 30% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: do-field 16s ease-in-out infinite alternate;
}
.scn-doctor-outwits .road-fore {
  position: absolute; bottom: 23%; left: 0; right: 15%; height: 6%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 0 50% 0 0 / 0 100% 0 0;
}
.scn-doctor-outwits .rider-halt {
  position: absolute; bottom: 22%; left: 40%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: do-rider 5s ease-in-out infinite;
}
.scn-doctor-outwits .horse {
  position: absolute; bottom: 20%; left: 42%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: do-horse 4s ease-in-out infinite;
}
.scn-doctor-outwits .lantern-pole {
  position: absolute; bottom: 24%; left: 58%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: do-lantern 6s ease-in-out infinite;
}
.scn-doctor-outwits .tree-left {
  position: absolute; bottom: 20%; left: 5%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a140a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scale(1.3);
  animation: do-tree 30s linear infinite alternate;
}
.scn-doctor-outwits .tree-right {
  position: absolute; bottom: 18%; right: 5%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #152215 0%, #0a120a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  transform: scale(1.1);
  animation: do-tree 35s linear infinite alternate-reverse;
}
@keyframes do-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes do-field { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes do-rider { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(2px) translateY(0) rotate(-1deg); } 75% { transform: translateX(-1px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes do-horse { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes do-lantern { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes do-tree { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(2px) scale(0.98); } }

/* plan-for-next-day - dim interior, calm, table with map */
.scn-plan-for-next-day {
  background: linear-gradient(180deg, #1a1510 0%, #2a2218 40%, #1e1810 100%), radial-gradient(ellipse at 50% 30%, #3a3020 0%, transparent 70%);
}
.scn-plan-for-next-day .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2218 0%, #1a1510 100%);
  animation: pnd-wall 8s ease-in-out infinite alternate;
}
.scn-plan-for-next-day .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  transform: perspective(300px) rotateX(20deg);
}
.scn-plan-for-next-day .map {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 14%;
  background: linear-gradient(135deg, #c8b080 0%, #a89060 40%, #c8b080 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: perspective(200px) rotateX(10deg);
  animation: pnd-map 12s ease-in-out infinite alternate;
}
.scn-plan-for-next-day .candle {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #e8d0a0 60%, #a08050 100%);
  border-radius: 2px 2px 4px 4px;
  transform-origin: bottom center;
  animation: pnd-candle 3s ease-in-out infinite alternate;
}
.scn-plan-for-next-day .candle-glow {
  position: absolute; bottom: 38%; left: 44%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pnd-glow 2s ease-in-out infinite alternate;
}
.scn-plan-for-next-day .hand-hand {
  position: absolute; bottom: 25%; left: 35%; width: 16px; height: 22px;
  background: radial-gradient(ellipse at 50% 30%, #d0a080 0%, #a07050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: pnd-hand 5s ease-in-out infinite;
}
.scn-plan-for-next-day .pencil {
  position: absolute; bottom: 24%; left: 38%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(40deg);
  transform-origin: left center;
  animation: pnd-pencil 6s ease-in-out infinite;
}
@keyframes pnd-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes pnd-map { 0% { transform: perspective(200px) rotateX(10deg) translateY(0); } 50% { transform: perspective(200px) rotateX(12deg) translateY(-2px); } 100% { transform: perspective(200px) rotateX(10deg) translateY(0); } }
@keyframes pnd-candle { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(0.95) scaleY(1.05); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes pnd-glow { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes pnd-hand { 0% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-2px); } 50% { transform: rotate(18deg) translateY(0); } 75% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes pnd-pencil { 0% { transform: rotate(40deg) translateX(0); } 25% { transform: rotate(35deg) translateX(2px); } 50% { transform: rotate(45deg) translateX(-1px); } 75% { transform: rotate(38deg) translateX(1px); } 100% { transform: rotate(40deg) translateX(0); } }

/* doctor-has-upper-hand - dim interior, two figures by firelight */
.scn-doctor-has-upper-hand {
  background: linear-gradient(180deg, #1a1510 0%, #2a2218 40%, #1e1810 100%), radial-gradient(ellipse at 50% 50%, #3a3020 0%, transparent 70%);
}
.scn-doctor-has-upper-hand .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1510 0%, #2a2018 60%, #1e1810 100%);
  animation: dhu-bg 10s ease-in-out infinite alternate;
}
.scn-doctor-has-upper-hand .window-frame {
  position: absolute; top: 10%; left: 10%; right: 70%; bottom: 60%;
  background: linear-gradient(180deg, #2a2218 0%, #1a1510 100%);
  border: 4px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.3);
  animation: dhu-frame 6s ease-in-out infinite;
}
.scn-doctor-has-upper-hand .fireplace {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: dhu-fireplace 8s ease-in-out infinite alternate;
}
.scn-doctor-has-upper-hand .fire-glow {
  position: absolute; bottom: 35%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #ff9040 0%, #d06020 40%, transparent 70%);
  filter: blur(6px);
  animation: dhu-fireglow 3s ease-in-out infinite alternate;
}
.scn-doctor-has-upper-hand .figure-doctor {
  position: absolute; bottom: 18%; left: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dhu-doctor 5s ease-in-out infinite;
}
.scn-doctor-has-upper-hand .figure-watson {
  position: absolute; bottom: 18%; right: 30%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dhu-watson 5s ease-in-out infinite alternate-reverse;
}
.scn-doctor-has-upper-hand .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(10deg);
}
@keyframes dhu-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes dhu-frame { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes dhu-fireplace { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dhu-fireglow { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.9); } }
@keyframes dhu-doctor { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dhu-watson { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(2deg); } }

/* ===== Scene: holmes-explains-deduction ===== */
.scn-holmes-explains-deduction {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #e0cba0 40%, #c8a87a 100%),
    radial-gradient(ellipse at 30% 70%, #f0e0c0 0%, transparent 60%);
}
.scn-holmes-explains-deduction .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #ede3d0 0%, #d9c8a8 100%);
  animation: he1-wall 20s ease-in-out infinite alternate;
}
.scn-holmes-explains-deduction .fireplace {
  position: absolute; bottom: 15%; left: 10%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: he1-fireplace 12s ease-in-out infinite;
}
.scn-holmes-explains-deduction .mantel {
  position: absolute; bottom: 62%; left: 10%; width: 130px; height: 8px;
  background: #7a6a4a; border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
.scn-holmes-explains-deduction .table {
  position: absolute; bottom: 12%; left: 35%; width: 160px; height: 80px;
  background: linear-gradient(180deg, #c8a87a 0%, #a08860 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.25);
  animation: he1-table 18s ease-in-out infinite alternate;
}
.scn-holmes-explains-deduction .papers {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 80px;
  background: #f5f0e0; border-radius: 2px; 
  box-shadow: 2px 2px 4px rgba(0,0,0,0.15), 0 0 0 1px #e0d0b0 inset;
  transform: rotate(-3deg); animation: he1-papers 8s ease-in-out infinite;
}
.scn-holmes-explains-deduction .holmes-figure {
  position: absolute; bottom: 10%; left: 45%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: he1-walk 4s ease-in-out infinite alternate;
}
.scn-holmes-explains-deduction .lamp-glow {
  position: absolute; bottom: 35%; right: 20%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #e0a050 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%; 
  box-shadow: 0 0 40px 20px rgba(255,200,100,0.4), 0 0 80px 40px rgba(255,200,100,0.15);
  animation: he1-glow 3s ease-in-out infinite alternate;
}
.scn-holmes-explains-deduction .shadow-stripes {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: he1-stripes 15s linear infinite;
}
@keyframes he1-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes he1-fireplace { 0% { transform: translateY(0px); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0px); } }
@keyframes he1-table { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }
@keyframes he1-papers { 0% { transform: rotate(-3deg); } 25% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(0deg); } 100% { transform: rotate(-3deg); } }
@keyframes he1-walk { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes he1-glow { 0% { box-shadow: 0 0 30px 15px rgba(255,200,100,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 60px 30px rgba(255,200,100,0.5); opacity: 1; } 100% { box-shadow: 0 0 40px 20px rgba(255,200,100,0.35); opacity: 0.9; } }
@keyframes he1-stripes { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

/* ===== Scene: window-height-clue ===== */
.scn-window-height-clue {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d0bfa0 50%, #b8a080 100%),
    radial-gradient(ellipse at 60% 30%, #f0e8d8 0%, transparent 70%);
}
.scn-window-height-clue .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #e0d4c0 0%, #d4c4a8 50%, #e0d4c0 100%);
  animation: wh2-wall 14s ease-in-out infinite;
}
.scn-window-height-clue .window-frame {
  position: absolute; top: 10%; left: 60%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 15px rgba(0,0,0,0.2);
  animation: wh2-frame 12s ease-in-out infinite alternate;
}
.scn-window-height-clue .window-glass {
  position: absolute; top: 12%; left: 63%; width: 105px; height: 140px;
  background: linear-gradient(135deg, #d0e0e8 0%, #b0c8d8 100%);
  border-radius: 8% 8% 4% 4%; opacity: 0.7;
  box-shadow: inset 0 0 20px rgba(100,150,200,0.3);
  animation: wh2-glass 8s ease-in-out infinite;
}
.scn-window-height-clue .desk {
  position: absolute; bottom: 8%; left: 20%; width: 180px; height: 70px;
  background: linear-gradient(180deg, #b09070 0%, #8a6a50 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: wh2-desk 20s ease-in-out infinite alternate;
}
.scn-window-height-clue .chair {
  position: absolute; bottom: 0; left: 30%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%; transform: scaleX(0.8);
}
.scn-window-height-clue .figure-pointing {
  position: absolute; bottom: 8%; left: 40%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wh2-point 5s ease-in-out infinite;
}
.scn-window-height-clue .papers-scattered {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 70px;
  background: #f5f0e0; border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.15);
  transform: rotate(12deg);
}
.scn-window-height-clue .shadow-angled {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(0,0,0,0.12) 0%, transparent 100%);
  animation: wh2-shadow 18s ease-in-out infinite alternate;
}
@keyframes wh2-wall { 0% { opacity: 1; } 50% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes wh2-frame { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes wh2-glass { 0% { opacity: 0.6; } 50% { opacity: 0.75; } 100% { opacity: 0.6; } }
@keyframes wh2-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wh2-point { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(-6px) rotate(5deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes wh2-shadow { 0% { opacity: 0.2; } 50% { opacity: 0.35; } 100% { opacity: 0.2; } }

/* ===== Scene: gilchrist-height ===== */
.scn-gilchrist-height {
  background:
    linear-gradient(180deg, #eee2d0 0%, #d0bfa0 50%, #b8a080 100%),
    radial-gradient(ellipse at 50% 80%, #f5ece0 0%, transparent 60%);
}
.scn-gilchrist-height .interior-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d8c8a8 100%);
  animation: gh3-bg 16s ease-in-out infinite;
}
.scn-gilchrist-height .center-table {
  position: absolute; bottom: 10%; left: 30%; width: 180px; height: 90px;
  background: linear-gradient(180deg, #b09070 0%, #8a6a50 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: gh3-table 14s ease-in-out infinite alternate;
}
.scn-gilchrist-height .student-silhouette {
  position: absolute; bottom: 10%; left: 50%; width: 35px; height: 110px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gh3-student 6s ease-in-out infinite;
}
.scn-gilchrist-height .side-table {
  position: absolute; bottom: 8%; right: 12%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #a08a6a 0%, #7a6040 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: gh3-side 18s ease-in-out infinite alternate;
}
.scn-gilchrist-height .lamp-light {
  position: absolute; top: 20%; left: 15%; width: 30px; height: 40px;
  background: radial-gradient(circle, #ffe8b0 0%, #e0b060 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 50px 30px rgba(255,200,100,0.3), 0 0 100px 60px rgba(255,200,100,0.1);
  animation: gh3-lamp 4s ease-in-out infinite alternate;
}
.scn-gilchrist-height .paper-stack {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 50px;
  background: #f5f0e0; border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.1), 0 0 0 1px #e0d0b0 inset;
  transform: rotate(6deg);
}
.scn-gilchrist-height .shadow-long {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, rgba(0,0,0,0.1) 0%, transparent 100%);
  animation: gh3-shadow 20s ease-in-out infinite;
}
@keyframes gh3-bg { 0% { opacity: 1; } 50% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes gh3-table { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes gh3-student { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-8px) rotate(1deg); } 50% { transform: translateY(-14px) rotate(3deg); } 75% { transform: translateY(-8px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes gh3-side { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes gh3-lamp { 0% { box-shadow: 0 0 40px 20px rgba(255,200,100,0.25); opacity: 0.8; } 50% { box-shadow: 0 0 70px 40px rgba(255,200,100,0.45); opacity: 1; } 100% { box-shadow: 0 0 50px 30px rgba(255,200,100,0.3); opacity: 0.85; } }
@keyframes gh3-shadow { 0% { opacity: 0.15; } 50% { opacity: 0.3; } 100% { opacity: 0.15; } }

/* ===== Scene: reconstruction-crime ===== */
.scn-reconstruction-crime {
  background:
    linear-gradient(180deg, #f0e4d0 0%, #d0b898 50%, #b09878 100%),
    radial-gradient(ellipse at 70% 60%, #f5ece0 0%, transparent 70%);
}
.scn-reconstruction-crime .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #d4c0a4 100%);
  animation: rc4-wall 15s ease-in-out infinite;
}
.scn-reconstruction-crime .window-open {
  position: absolute; top: 15%; right: 8%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #c0d0d8 0%, #a0b8c8 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(100,150,200,0.3);
  opacity: 0.6; animation: rc4-window 12s ease-in-out infinite alternate;
}
.scn-reconstruction-crime .desk-cluttered {
  position: absolute; bottom: 10%; left: 20%; width: 200px; height: 80px;
  background: linear-gradient(180deg, #b09070 0%, #8a6a50 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: rc4-desk 16s ease-in-out infinite alternate;
}
.scn-reconstruction-crime .figure-reach {
  position: absolute; bottom: 10%; left: 45%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rc4-reach 5s ease-in-out infinite;
}
.scn-reconstruction-crime .jumping-shoes {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 20px;
  background: #5a4a3a; border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(15deg); animation: rc4-shoe 9s ease-in-out infinite;
}
.scn-reconstruction-crime .paper-sheet {
  position: absolute; bottom: 30%; right: 20%; width: 40px; height: 55px;
  background: #f5f0e0; border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.1);
  transform: rotate(-10deg); animation: rc4-paper 7s ease-in-out infinite;
}
.scn-reconstruction-crime .spike-marks {
  position: absolute; bottom: 15%; left: 30%; width: 60px; height: 4px;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 3px, transparent 3px, transparent 8px);
  animation: rc4-spikes 10s linear infinite;
}
.scn-reconstruction-crime .lamp-halo {
  position: absolute; top: 25%; left: 10%; width: 20px; height: 25px;
  background: radial-gradient(circle, #ffe0a0 0%, #d0a060 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 25px rgba(255,200,100,0.3);
  animation: rc4-halo 3s ease-in-out infinite alternate;
}
@keyframes rc4-wall { 0% { opacity: 1; } 50% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes rc4-window { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes rc4-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rc4-reach { 0% { transform: translateY(0) rotate(-8deg); } 25% { transform: translateY(-10px) rotate(-2deg); } 50% { transform: translateY(-20px) rotate(5deg); } 75% { transform: translateY(-10px) rotate(-2deg); } 100% { transform: translateY(0) rotate(-8deg); } }
@keyframes rc4-shoe { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(20deg) translateX(6px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes rc4-paper { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-10deg); } }
@keyframes rc4-spikes { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } }
@keyframes rc4-halo { 0% { box-shadow: 0 0 30px 15px rgba(255,200,100,0.25); opacity: 0.8; } 50% { box-shadow: 0 0 60px 35px rgba(255,200,100,0.45); opacity: 1; } 100% { box-shadow: 0 0 40px 20px rgba(255,200,100,0.3); opacity: 0.9; } }

/* Scene: finding-palmer-tire */
.scn-finding-palmer-tire {
  background:
    linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 30%, #3a4a3a 70%, #2a3a3a 100%),
    radial-gradient(ellipse at 50% 100%, #2a3a3a 0%, transparent 60%);
}
.scn-finding-palmer-tire .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8a9a9a 0%, #6a7a7a 100%); animation: fpt-sky 12s ease-in-out infinite alternate; }
.scn-finding-palmer-tire .moor-bg { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 30% 50% 0 0 / 60% 40% 0 0; }
.scn-finding-palmer-tire .bog { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:20%; filter: blur(4px); animation: fpt-bog 8s ease-in-out infinite alternate; }
.scn-finding-palmer-tire .miry-path { position:absolute; bottom:22%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius:40% 40% 20% 20%; box-shadow: inset 0 2px 6px rgba(0,0,0,.5); }
.scn-finding-palmer-tire .tire-track { position:absolute; bottom:24%; left:35%; right:35%; height:2%; background: repeating-linear-gradient(90deg, #2a3a2a 0px 2px, transparent 2px 8px); border-radius: 20%; box-shadow: 0 0 0 2px #2a3a2a; animation: fpt-track 6s ease-in-out infinite; }
.scn-finding-palmer-tire .holmes-figure { position:absolute; bottom:26%; left:45%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fpt-figure 4s ease-in-out infinite; }
.scn-finding-palmer-tire .gorse-clump { position:absolute; bottom:18%; right:15%; width:30px; height:20px; background: #2a3a2a; border-radius:50% 50% 0 0; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: fpt-gorse 7s ease-in-out infinite; }

@keyframes fpt-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fpt-bog { 0% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(-2px) scale(1.02); opacity:.95 } 100% { transform: translateY(0) scale(1); opacity:.8 } }
@keyframes fpt-track { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes fpt-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(1deg) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes fpt-gorse { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } }

/* Scene: following-palmer-tire */
.scn-following-palmer-tire {
  background:
    linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 40%, #3a4a3a 80%, #2a3a3a 100%),
    radial-gradient(ellipse at 40% 100%, #2a3a3a 0%, transparent 50%);
}
.scn-following-palmer-tire .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a9a9a 0%, #6a7a7a 100%); animation: fpt2-sky 14s ease-in-out infinite alternate; }
.scn-following-palmer-tire .moor-bg { position:absolute; bottom:35%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 40% 60% 0 0 / 70% 50% 0 0; }
.scn-following-palmer-tire .soft-patches { position:absolute; bottom:25%; left:5%; right:5%; height:15%; background: radial-gradient(circle at 20% 50%, #3a4a3a 0%, transparent 40%), radial-gradient(circle at 80% 30%, #3a4a3a 0%, transparent 40%); filter: blur(5px); animation: fpt2-patches 10s ease-in-out infinite alternate; }
.scn-following-palmer-tire .tire-segment-1 { position:absolute; bottom:28%; left:15%; width:20%; height:2%; background: repeating-linear-gradient(90deg, #2a3a2a 0px 2px, transparent 2px 8px); border-radius: 20%; animation: fpt2-tire1 8s ease-in-out infinite; }
.scn-following-palmer-tire .tire-segment-2 { position:absolute; bottom:28%; left:55%; width:18%; height:2%; background: repeating-linear-gradient(90deg, #2a3a2a 0px 2px, transparent 2px 8px); border-radius: 20%; animation: fpt2-tire2 12s ease-in-out infinite; }
.scn-following-palmer-tire .holmes-figure { position:absolute; bottom:30%; left:20%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fpt2-figure 5s ease-in-out infinite; }
.scn-following-palmer-tire .watson-figure { position:absolute; bottom:30%; left:28%; width:16px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fpt2-figure 5s ease-in-out infinite reverse; }
.scn-following-palmer-tire .gorse-bush { position:absolute; bottom:22%; right:10%; width:40px; height:25px; background: #2a3a2a; border-radius: 50% 50% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: fpt2-gorse 9s ease-in-out infinite; }

@keyframes fpt2-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fpt2-patches { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.9; transform: scale(1.05) } 100% { opacity:.6; transform: scale(1) } }
@keyframes fpt2-tire1 { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(1) } }
@keyframes fpt2-tire2 { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.15) } 100% { opacity:.3; transform: scaleX(1) } }
@keyframes fpt2-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(1deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes fpt2-gorse { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.03) } }

/* Scene: discovering-blood */
.scn-discovering-blood {
  background:
    linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 40%, #3a4a3a 80%, #2a3a2a 100%),
    radial-gradient(ellipse at 60% 80%, #4a5a4a 0%, transparent 60%);
}
.scn-discovering-blood .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 100%); animation: db-sky 10s ease-in-out infinite alternate; }
.scn-discovering-blood .moor-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; }
.scn-discovering-blood .blood-stain { position:absolute; bottom:20%; left:30%; width:40%; height:12%; background: radial-gradient(ellipse, #5a1a1a 0%, #3a0a0a 50%, transparent 80%); border-radius: 60% 40% 50% 30%; filter: blur(3px); animation: db-blood 6s ease-in-out infinite alternate; }
.scn-discovering-blood .footprints { position:absolute; bottom:35%; left:35%; width:8%; height:1%; background: repeating-linear-gradient(90deg, #3a4a3a 0px 2px, transparent 2px 6px); border-radius: 10%; animation: db-foot 5s ease-in-out infinite; }
.scn-discovering-blood .gorse-branch { position:absolute; bottom:30%; left:20%; width:30%; height:4%; background: linear-gradient(90deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 40% 10% 10% 40%; transform: rotate(-15deg); box-shadow: inset 0 2px 4px rgba(0,0,0,.4); }
.scn-discovering-blood .yellow-blossoms { position:absolute; bottom:31%; left:25%; width:10px; height:10px; background: radial-gradient(circle, #b8a040 0%, #8a7030 100%); border-radius: 50%; box-shadow: 0 0 6px 2px #b8a040; animation: db-blossom 3s ease-in-out infinite alternate; }
.scn-discovering-blood .holmes-hand { position:absolute; bottom:35%; left:15%; width:14px; height:24px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(20deg); animation: db-hand 4s ease-in-out infinite; }

@keyframes db-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes db-blood { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.9; transform: scale(1.3) } 100% { opacity:.7; transform: scale(1) } }
@keyframes db-foot { 0% { opacity:.4; transform: translateX(0) } 50% { opacity:.8; transform: translateX(5px) } 100% { opacity:.4; transform: translateX(0) } }
@keyframes db-blossom { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.8; transform: scale(1) } }
@keyframes db-hand { 0% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(25deg) translateX(3px) } 100% { transform: rotate(20deg) translateX(0) } }

/* Scene: finding-heidegger-body */
.scn-finding-heidegger-body {
  background:
    linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 40%, #2a3a2a 80%, #1a2a1a 100%),
    radial-gradient(ellipse at 30% 70%, #2a3a2a 0%, transparent 50%);
}
.scn-finding-heidegger-body .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%); animation: fhb-sky 15s ease-in-out infinite alternate; }
.scn-finding-heidegger-body .gorse-bushes-bg { position:absolute; bottom:10%; left:0; right:0; height:60%; background: radial-gradient(ellipse at 20% 40%, #3a4a3a 0%, transparent 50%), radial-gradient(ellipse at 80% 60%, #3a4a3a 0%, transparent 40%); filter: blur(6px); }
.scn-finding-heidegger-body .gorse-bushes-fg { position:absolute; bottom:5%; left:10%; right:10%; height:50%; background: radial-gradient(circle at 30% 80%, #2a3a2a 0%, transparent 30%), radial-gradient(circle at 70% 60%, #2a3a2a 0%, transparent 30%); filter: blur(3px); animation: fhb-gorse 9s ease-in-out infinite alternate; }
.scn-finding-heidegger-body .bicycle-frame { position:absolute; bottom:25%; left:35%; width:20%; height:25%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform: rotate(15deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: fhb-frame 6s ease-in-out infinite; }
.scn-finding-heidegger-body .bicycle-wheel { position:absolute; bottom:20%; left:40%; width:12%; height:12%; background: radial-gradient(circle, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50%; border: 2px solid #2a2a2a; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: fhb-wheel 3s linear infinite; }
.scn-finding-heidegger-body .bent-pedal { position:absolute; bottom:28%; left:42%; width:4%; height:1%; background: #3a3a3a; transform: rotate(45deg); border-radius: 20%; box-shadow: 0 1px 3px rgba(0,0,0,.5); animation: fhb-pedal 2s ease-in-out infinite alternate; }
.scn-finding-heidegger-body .body-silhouette { position:absolute; bottom:15%; left:30%; width:12%; height:18%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: fhb-body 8s ease-in-out infinite; }
.scn-finding-heidegger-body .holmes-figure { position:absolute; bottom:30%; left:55%; width:14px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fhb-holmes 5s ease-in-out infinite; }

@keyframes fhb-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fhb-gorse { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.9; transform: scale(1.05) } 100% { opacity:.6; transform: scale(1) } }
@keyframes fhb-frame { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(17deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes fhb-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes fhb-pedal { 0% { transform: rotate(45deg) } 100% { transform: rotate(55deg) } }
@keyframes fhb-body { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes fhb-holmes { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0) } }

/* CARRUTHERS RECOUNTS - tense/dim interior */
.scn-carruthers-recounts {
  background: linear-gradient(180deg, #2a2520 0%, #1e1a16 40%, #14120e 100%),
              radial-gradient(ellipse at 70% 20%, #3a332b 0%, transparent 60%);
}
.scn-carruthers-recounts .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a332b 0%, #2a2520 100%);
  animation: crr1-wall 12s ease-in-out infinite alternate;
}
.scn-carruthers-recounts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1612 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.6);
}
.scn-carruthers-recounts .window {
  position: absolute; top: 15%; left: 55%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-carruthers-recounts .window.glow {
  background: radial-gradient(ellipse at 50% 50%, #6a6a8a 0%, #2a2a3a 70%);
  box-shadow: 0 0 30px 6px rgba(106,106,138,0.3);
  animation: crr1-glow 3s ease-in-out infinite alternate;
}
.scn-carruthers-recounts .lamp {
  position: absolute; top: 42%; left: 30%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(200,160,100,0.4);
  animation: crr1-lamp 5s ease-in-out infinite alternate;
}
.scn-carruthers-recounts .figure-left {
  position: absolute; bottom: 28%; left: 18%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crr1-figureL 6s ease-in-out infinite;
}
.scn-carruthers-recounts .figure-right {
  position: absolute; bottom: 28%; left: 60%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crr1-figureR 7s ease-in-out infinite;
}
.scn-carruthers-recounts .table {
  position: absolute; bottom: 28%; left: 35%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-carruthers-recounts .shadow {
  position: absolute; bottom: 28%; left: 40%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: crr1-shadow 8s ease-in-out infinite alternate;
}
@keyframes crr1-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes crr1-glow { 0% { box-shadow: 0 0 20px 4px rgba(106,106,138,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 40px 10px rgba(106,106,138,0.5); opacity: 1 } 100% { box-shadow: 0 0 25px 6px rgba(106,106,138,0.3); opacity: 0.9 } }
@keyframes crr1-lamp { 0% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 30px 10px rgba(200,160,100,0.3) } 50% { transform: translateY(-3px) rotate(2deg); box-shadow: 0 0 50px 20px rgba(200,160,100,0.5) } 100% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 30px 10px rgba(200,160,100,0.3) } }
@keyframes crr1-figureL { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } }
@keyframes crr1-figureR { 0%,100% { transform: translateX(0) translateY(0) rotate(1deg) } 33% { transform: translateX(-6px) translateY(-1px) rotate(-1deg) } 66% { transform: translateX(-12px) translateY(1px) rotate(1deg) } }
@keyframes crr1-shadow { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.1) scaleY(0.9) } 100% { transform: scaleX(0.95) scaleY(1.05) } }

/* CARRUTHERS FINAL ACCOUNT - tense/dim interior */
.scn-carruthers-final-account {
  background: linear-gradient(180deg, #2d2621 0%, #221c18 50%, #171310 100%),
              radial-gradient(ellipse at 50% 80%, #3b322a 0%, transparent 60%);
}
.scn-carruthers-final-account .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3b322a 0%, #2d2621 100%);
}
.scn-carruthers-final-account .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #221c18 0%, #14100d 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.7);
}
.scn-carruthers-final-account .desk {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #5a4636 0%, #3a2a1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-carruthers-final-account .candle {
  position: absolute; bottom: 42%; left: 38%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e8d0b0 0%, #b09880 100%);
  border-radius: 2px;
  animation: crr2-candle 5s ease-in-out infinite alternate;
}
.scn-carruthers-final-account .candle-glow {
  position: absolute; bottom: 40%; left: 36%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd090 0%, #cc8840 40%, transparent 70%);
  border-radius: 50%;
  animation: crr2-candle 5s ease-in-out infinite alternate;
}
.scn-carruthers-final-account .paper {
  position: absolute; bottom: 40%; left: 25%; width: 30px; height: 20px;
  background: #e8e0d0;
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-carruthers-final-account .figure-sit {
  position: absolute; bottom: 30%; left: 22%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crr2-sit 8s ease-in-out infinite;
}
.scn-carruthers-final-account .figure-stand {
  position: absolute; bottom: 30%; left: 52%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crr2-stand 9s ease-in-out infinite;
}
@keyframes crr2-candle { 0% { opacity: 0.7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.02) } 100% { opacity: 0.8; transform: scaleY(0.98) } }
@keyframes crr2-sit { 0%,100% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(4px) rotate(-2deg) } 66% { transform: translateX(-2px) rotate(1deg) } }
@keyframes crr2-stand { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(-1deg) } 50% { transform: translateX(16px) rotate(1deg) } 75% { transform: translateX(8px) rotate(-1deg) } }

/* CARRUTHERS CONCLUSION - tense/dim interior */
.scn-carruthers-conclusion {
  background: linear-gradient(180deg, #2a2520 0%, #1e1a16 40%, #14120e 100%),
              radial-gradient(ellipse at 30% 50%, #3a332b 0%, transparent 70%);
}
.scn-carruthers-conclusion .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2520 0%, #0e0c0a 100%);
}
.scn-carruthers-conclusion .chair {
  position: absolute; bottom: 25%; left: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-carruthers-conclusion .clock {
  position: absolute; top: 20%; left: 40%; width: 30px; height: 30px;
  border: 3px solid #5a4a3a;
  border-radius: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  animation: crr3-clock 60s linear infinite;
}
.scn-carruthers-conclusion .clock::after {
  content: ''; position: absolute; top: 50%; left: 50%; width: 2px; height: 12px;
  background: #8a7050; transform-origin: bottom center;
  animation: crr3-hand 5s linear infinite;
}
.scn-carruthers-conclusion .figure-pace {
  position: absolute; bottom: 28%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crr3-pace 3s ease-in-out infinite;
}
.scn-carruthers-conclusion .carpet {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}
.scn-carruthers-conclusion .lamp-side {
  position: absolute; bottom: 35%; left: 70%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #b09070 0%, #705030 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(200,160,100,0.3);
  animation: crr3-lamp 4s ease-in-out infinite alternate;
}
.scn-carruthers-conclusion .door {
  position: absolute; top: 10%; right: 5%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
}
.scn-carruthers-conclusion .shadow-move {
  position: absolute; bottom: 28%; left: 20%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: crr3-shadow 3s ease-in-out infinite alternate;
}
@keyframes crr3-clock { from { transform: rotate(0deg) } to { transform: rotate(360deg) } }
@keyframes crr3-hand { from { transform: rotate(0deg) } to { transform: rotate(360deg) } }
@keyframes crr3-pace { 0%,100% { transform: translateX(0) translateY(0) } 25% { transform: translateX(15px) translateY(-3px) } 50% { transform: translateX(30px) translateY(0) } 75% { transform: translateX(45px) translateY(-3px) } }
@keyframes crr3-lamp { 0% { transform: translateY(0); box-shadow: 0 0 20px 5px rgba(200,160,100,0.2) } 50% { transform: translateY(-2px); box-shadow: 0 0 40px 12px rgba(200,160,100,0.5) } 100% { transform: translateY(0); box-shadow: 0 0 25px 6px rgba(200,160,100,0.3) } }
@keyframes crr3-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.2) translateX(10px) } 100% { transform: scaleX(1) translateX(0) } }

/* HOLMES FINAL WORDS - calm/dim interior */
.scn-holmes-final-words {
  background: linear-gradient(180deg, #3d362f 0%, #2d2621 40%, #1e1a16 100%),
              radial-gradient(ellipse at 50% 60%, #4a3f36 0%, transparent 70%);
}
.scn-holmes-final-words .room-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3f36 0%, #2d2621 100%);
  animation: hfw-room 30s ease-in-out infinite alternate;
}
.scn-holmes-final-words .fireplace {
  position: absolute; bottom: 30%; left: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-holmes-final-words .fire-glow {
  position: absolute; bottom: 33%; left: 12%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, #ffaa40 0%, #cc6620 40%, transparent 70%);
  border-radius: 50%;
  animation: hfw-fire 4s ease-in-out infinite alternate;
}
.scn-holmes-final-words .chair-left {
  position: absolute; bottom: 28%; left: 25%; width: 36px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-holmes-final-words .chair-right {
  position: absolute; bottom: 28%; left: 55%; width: 36px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-holmes-final-words .figure-holmes {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hfw-holmes 10s ease-in-out infinite;
}
.scn-holmes-final-words .figure-watson {
  position: absolute; bottom: 30%; left: 58%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hfw-watson 12s ease-in-out infinite;
}
.scn-holmes-final-words .cigarette {
  position: absolute; bottom: 42%; left: 30%; width: 4px; height: 12px;
  background: #b08860;
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: hfw-cigarette 5s ease-in-out infinite alternate;
}
.scn-holmes-final-words .smoke {
  position: absolute; bottom: 50%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: hfw-smoke 8s ease-in-out infinite;
}
@keyframes hfw-room { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hfw-fire { 0% { transform: scale(1) rotate(0deg); opacity: 0.6 } 25% { transform: scale(1.05) rotate(5deg); opacity: 0.9 } 50% { transform: scale(1.1) rotate(-3deg); opacity: 1 } 75% { transform: scale(1.03) rotate(2deg); opacity: 0.8 } 100% { transform: scale(1) rotate(0deg); opacity: 0.6 } }
@keyframes hfw-holmes { 0%,100% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(4px) rotate(-2deg) } 66% { transform: translateX(-2px) rotate(1deg) } }
@keyframes hfw-watson { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-5px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(6px) rotate(1deg) } }
@keyframes hfw-cigarette { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-22deg) scaleY(0.95) } 100% { transform: rotate(-18deg) scaleY(1) } }
@keyframes hfw-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3 } 50% { transform: translateY(-20px) scale(1.5); opacity: 0 } 100% { transform: translateY(0) scale(1); opacity: 0.3 } }

.scn-honest-man-scruple {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e3d0b8 60%, #c4a882 100%),
    radial-gradient(ellipse at 70% 30%, #fff4e6 0%, transparent 60%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-honest-man-scruple .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, #fdf6ee 0%, #e8d8c0 100%); animation: hm1-bg 14s ease-in-out infinite alternate; }
.scn-honest-man-scruple .window-frame { position:absolute; top:8%; left:55%; width:30%; height:45%; border:6px solid #8b7355; border-radius:6px; background: transparent; box-shadow: inset 0 0 0 4px #a0845c; animation: hm1-frame 12s ease-in-out infinite; }
.scn-honest-man-scruple .window-glass { position:absolute; top:10%; left:57%; width:26%; height:41%; background: linear-gradient(180deg, rgba(200,220,240,0.3) 0%, rgba(180,200,220,0.1) 100%); filter: blur(2px); animation: hm1-glass 20s linear infinite; }
.scn-honest-man-scruple .table-top { position:absolute; bottom:25%; left:10%; width:80%; height:18%; background: linear-gradient(180deg, #c8a882 0%, #b09070 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: hm1-table 18s ease-in-out infinite alternate; }
.scn-honest-man-scruple .figure-holmes { position:absolute; bottom:25%; right:20%; width:28px; height:60px; background: linear-gradient(180deg, #2c221a 0%, #1a140f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hm1-figure 6s ease-in-out infinite; }
.scn-honest-man-scruple .bust { position:absolute; bottom:32%; left:45%; width:22px; height:28px; background: radial-gradient(ellipse at 50% 30%, #d4b896 0%, #a0846a 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.4); animation: hm1-bust 5s ease-in-out infinite alternate; }
.scn-honest-man-scruple .lamp-glow { position:absolute; bottom:35%; left:35%; width:40px; height:40px; background: radial-gradient(circle, #ffd9a0 0%, #e6b070 40%, transparent 70%); filter: blur(8px); animation: hm1-lamp 3s ease-in-out infinite alternate; }
@keyframes hm1-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hm1-frame { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hm1-glass { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }
@keyframes hm1-table { 0% { transform: translateY(0); } 100% { transform: translateY(-1px); } }
@keyframes hm1-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(2px) rotate(0deg); } 75% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hm1-bust { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-1px) scale(1.02); } }
@keyframes hm1-lamp { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }

.scn-holmes-pays-ten-pounds {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e3d0b8 60%, #c4a882 100%),
    radial-gradient(ellipse at 50% 100%, #d4c0a8 0%, transparent 70%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-holmes-pays-ten-pounds .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, #fdf6ee 0%, #e8d8c0 100%); animation: hm2-bg 16s ease-in-out infinite alternate; }
.scn-holmes-pays-ten-pounds .table-top { position:absolute; bottom:25%; left:10%; width:80%; height:18%; background: linear-gradient(180deg, #c8a882 0%, #b09070 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: hm2-table 20s ease-in-out infinite alternate; }
.scn-holmes-pays-ten-pounds .bust { position:absolute; bottom:32%; left:45%; width:22px; height:28px; background: radial-gradient(ellipse at 50% 30%, #d4b896 0%, #a0846a 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.4); animation: hm2-bust 7s ease-in-out infinite alternate; }
.scn-holmes-pays-ten-pounds .hand { position:absolute; bottom:30%; left:38%; width:16px; height:30px; background: linear-gradient(180deg, #d4b896 0%, #b09070 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: hm2-hand 4s ease-in-out infinite; }
.scn-holmes-pays-ten-pounds .ten-pound-note { position:absolute; bottom:33%; left:42%; width:20px; height:14px; background: #e6d4b8; border:1px solid #b09070; border-radius:2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: hm2-note 6s ease-in-out infinite; }
.scn-holmes-pays-ten-pounds .shadow-hand { position:absolute; bottom:29%; left:37%; width:18px; height:32px; background: rgba(0,0,0,0.15); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; filter: blur(3px); animation: hm2-shadow 4s ease-in-out infinite; }
@keyframes hm2-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hm2-table { 0% { transform: translateY(0); } 100% { transform: translateY(-1px); } }
@keyframes hm2-bust { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-1px) scale(1.02); } }
@keyframes hm2-hand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg); } 50% { transform: translateX(4px) rotate(0deg); } 75% { transform: translateX(2px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hm2-note { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes hm2-shadow { 0% { transform: translateX(0) scale(1); opacity:0.5; } 50% { transform: translateX(3px) scale(1.1); opacity:0.3; } 100% { transform: translateX(0) scale(1); opacity:0.5; } }

.scn-holmes-breaks-bust {
  background:
    linear-gradient(180deg, #3d2b1a 0%, #2a1f10 60%, #1a1208 100%),
    radial-gradient(ellipse at 50% 40%, #4a3824 0%, transparent 70%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.6);
}
.scn-holmes-breaks-bust .bg-tense { position:absolute; inset:0; background: linear-gradient(135deg, #3d2b1a 0%, #2a1f10 60%); animation: hm3-bg 6s ease-in-out infinite alternate; }
.scn-holmes-breaks-bust .table-top { position:absolute; bottom:25%; left:10%; width:80%; height:18%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 18px rgba(0,0,0,0.5); animation: hm3-table 4s ease-in-out infinite alternate; }
.scn-holmes-breaks-bust .cloth { position:absolute; bottom:32%; left:35%; width:30%; height:20%; background: #e8ddd0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); transform: rotate(2deg); animation: hm3-cloth 3s ease-in-out infinite; }
.scn-holmes-breaks-bust .bust-intact { position:absolute; bottom:33%; left:48%; width:24px; height:32px; background: radial-gradient(ellipse at 50% 30%, #c8a882 0%, #8b7355 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: hm3-bust 2s ease-in-out infinite alternate; }
.scn-holmes-breaks-bust .hammer { position:absolute; bottom:40%; left:42%; width:18px; height:30px; background: linear-gradient(180deg, #8b7355 0%, #5a4530 100%); border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%; transform-origin: bottom center; animation: hm3-hammer 1.5s ease-in-out infinite; }
.scn-holmes-breaks-bust .splinter { position:absolute; bottom:32%; left:52%; width:6px; height:18px; background: #d4b896; transform: rotate(40deg); border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: hm3-splinter 0.8s ease-in-out infinite; }
.scn-holmes-breaks-bust .shadow-tense { position:absolute; bottom:30%; left:40%; width:60%; height:20%; background: rgba(0,0,0,0.3); filter: blur(10px); animation: hm3-shadow 3s ease-in-out infinite; }
@keyframes hm3-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes hm3-table { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-2px) scale(1.01); } }
@keyframes hm3-cloth { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } }
@keyframes hm3-bust { 0% { transform: scale(1); } 100% { transform: scale(0.95) translateY(1px); } }
@keyframes hm3-hammer { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(30deg) translateY(-5px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-30deg) translateY(-5px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes hm3-splinter { 0% { transform: rotate(40deg) translate(0,0); opacity:1; } 50% { transform: rotate(50deg) translate(3px,-3px); opacity:0.8; } 100% { transform: rotate(40deg) translate(0,0); opacity:1; } }
@keyframes hm3-shadow { 0% { transform: translateX(0); opacity:0.3; } 50% { transform: translateX(5px); opacity:0.5; } 100% { transform: translateX(0); opacity:0.3; } }

.scn-pearl-borgias-revealed {
  background:
    linear-gradient(180deg, #2a1f10 0%, #1a1208 60%, #0d0a05 100%),
    radial-gradient(ellipse at 60% 40%, #4a3824 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-pearl-borgias-revealed .bg-tense { position:absolute; inset:0; background: linear-gradient(135deg, #2a1f10 0%, #1a1208 60%); animation: hm4-bg 8s ease-in-out infinite alternate; }
.scn-pearl-borgias-revealed .table-top { position:absolute; bottom:25%; left:10%; width:80%; height:18%; background: linear-gradient(180deg, #5a4530 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 18px rgba(0,0,0,0.5); animation: hm4-table 6s ease-in-out infinite alternate; }
.scn-pearl-borgias-revealed .splinter-hold { position:absolute; bottom:35%; left:45%; width:8px; height:22px; background: #b09070; transform: rotate(20deg); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,0.4); animation: hm4-splinter 3s ease-in-out infinite; }
.scn-pearl-borgias-revealed .pearl { position:absolute; bottom:37%; left:46%; width:10px; height:10px; background: radial-gradient(circle at 35% 35%, #f0f0f0 0%, #b8b8b8 60%, #808080 100%); border-radius: 50%; box-shadow: 0 0 12px 6px rgba(255,255,255,0.2), 0 0 24px 12px rgba(255,255,255,0.1); animation: hm4-pearl 2s ease-in-out infinite alternate; }
.scn-pearl-borgias-revealed .figure-holmes-triumph { position:absolute; bottom:28%; right:22%; width:26px; height:56px; background: linear-gradient(180deg, #2c221a 0%, #1a140f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hm4-figure 5s ease-in-out infinite; }
.scn-pearl-borgias-revealed .shadow-pearl { position:absolute; bottom:34%; left:43%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, transparent 70%); filter: blur(8px); animation: hm4-shadow 2s ease-in-out infinite alternate; }
@keyframes hm4-bg { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.7 } }
@keyframes hm4-table { 0% { transform: translateY(0); } 100% { transform: translateY(-1px); } }
@keyframes hm4-splinter { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes hm4-pearl { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes hm4-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(-1px) rotate(0deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hm4-shadow { 0% { transform: scale(1); opacity:0.4; } 100% { transform: scale(1.3); opacity:0.2; } }

.scn-date-of-marriage { background: linear-gradient(180deg, #f5e6d3 0%, #e8d5b8 40%, #d4b896 100%), radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 60%); }
.scn-date-of-marriage .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #eedece 0%, #dcc4b0 100%); }
.scn-date-of-marriage .window { position: absolute; top: 12%; left: 25%; width: 30%; height: 45%; background: radial-gradient(ellipse at 30% 20%, #fff8e0 0%, #c8b098 70%); box-shadow: inset 0 0 20px rgba(255,240,200,0.4); border-radius: 10px 10px 8px 8px; animation: dmo-window-glow 6s ease-in-out infinite alternate; }
.scn-date-of-marriage .light-beam { position: absolute; top: 15%; left: 28%; width: 35%; height: 60%; background: linear-gradient(135deg, rgba(255,245,210,0.3) 0%, rgba(255,245,210,0) 100%); clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); animation: dmo-beam 8s ease-in-out infinite; }
.scn-date-of-marriage .woman { position: absolute; bottom: 28%; left: 50%; width: 40px; height: 70px; transform: translateX(-50%); background: radial-gradient(ellipse 70% 60% at 50% 30%, #8a6e5e 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dmo-breathe 4s ease-in-out infinite; }
.scn-date-of-marriage .chair { position: absolute; bottom: 22%; left: 48%; width: 70px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a32 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; }
.scn-date-of-marriage .table { position: absolute; bottom: 26%; left: 60%; width: 50px; height: 30px; background: linear-gradient(180deg, #7a5a42 0%, #4a3220 100%); border-radius: 4px 4px 8px 8px; transform: perspective(300px) rotateX(5deg); }
.scn-date-of-marriage .letter { position: absolute; bottom: 34%; left: 62%; width: 22px; height: 16px; background: #f0e0c0; border-radius: 2px; animation: dmo-letter 10s ease-in-out infinite; }
@keyframes dmo-window-glow { 0% { opacity: 0.8; box-shadow: inset 0 0 10px rgba(255,240,200,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,240,200,0.6); } 100% { opacity: 0.9; box-shadow: inset 0 0 15px rgba(255,240,200,0.4); } }
@keyframes dmo-beam { 0% { transform: rotate(0deg) scaleX(1); opacity: 0.6; } 50% { transform: rotate(2deg) scaleX(1.05); opacity: 0.8; } 100% { transform: rotate(-1deg) scaleX(0.95); opacity: 0.7; } }
@keyframes dmo-breathe { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-1px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes dmo-letter { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-holmes-gentle { background: linear-gradient(180deg, #eadccf 0%, #d4c0ad 45%, #bfa890 100%), radial-gradient(ellipse at 60% 30%, #fff5e6 0%, transparent 65%); }
.scn-holmes-gentle .bg-wall { position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #dac5b0 0%, #c4a994 100%); }
.scn-holmes-gentle .lamp { position: absolute; top: 10%; left: 70%; width: 20px; height: 30px; background: radial-gradient(circle at 50% 50%, #ffddaa 0%, #cc9944 80%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 40px 12px rgba(255,220,170,0.5), 0 0 80px 24px rgba(255,220,170,0.15); animation: hge-lamp-glow 5s ease-in-out infinite alternate; }
.scn-holmes-gentle .holmes { position: absolute; bottom: 25%; left: 30%; width: 45px; height: 75px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%; transform-origin: bottom center; animation: hge-bow 6s ease-in-out infinite; }
.scn-holmes-gentle .lady { position: absolute; bottom: 25%; right: 30%; width: 40px; height: 68px; background: linear-gradient(180deg, #8a6e5e 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: hge-sit 5s ease-in-out infinite; }
.scn-holmes-gentle .sofa { position: absolute; bottom: 20%; left: 25%; right: 25%; height: 55px; background: linear-gradient(180deg, #7a5a42 0%, #4a3220 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; }
.scn-holmes-gentle .cushion { position: absolute; bottom: 28%; left: 32%; width: 60px; height: 20px; background: linear-gradient(180deg, #8a6e5e 0%, #6a4a32 100%); border-radius: 30% 30% 20% 20%; animation: hge-cushion 8s ease-in-out infinite; }
.scn-holmes-gentle .tassel { position: absolute; bottom: 25%; left: 48%; width: 4px; height: 12px; background: #d4a060; border-radius: 50%; box-shadow: 0 0 4px #d4a060; animation: hge-sway 3s ease-in-out infinite alternate; }
@keyframes hge-lamp-glow { 0% { opacity: 0.8; box-shadow: 0 0 30px 8px rgba(255,220,170,0.4), 0 0 60px 16px rgba(255,220,170,0.1); } 50% { opacity: 1; box-shadow: 0 0 50px 16px rgba(255,220,170,0.6), 0 0 100px 30px rgba(255,220,170,0.2); } 100% { opacity: 0.85; box-shadow: 0 0 35px 10px rgba(255,220,170,0.45), 0 0 70px 20px rgba(255,220,170,0.12); } }
@keyframes hge-bow { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes hge-sit { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hge-cushion { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hge-sway { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }

.scn-final-plea { background: linear-gradient(180deg, #f0e2d4 0%, #dbcab8 50%, #c4ac94 100%), radial-gradient(ellipse at 50% 70%, #fff5e6 0%, transparent 70%); }
.scn-final-plea .desk { position: absolute; bottom: 20%; left: 15%; right: 15%; height: 35%; background: linear-gradient(180deg, #7a5a42 0%, #4a3220 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.2); }
.scn-final-plea .hand { position: absolute; bottom: 42%; left: 40%; width: 30px; height: 45px; background: radial-gradient(ellipse 60% 80% at 50% 30%, #a08070 0%, #6a4a32 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fpl-hand-tremble 4s ease-in-out infinite; }
.scn-final-plea .letter { position: absolute; bottom: 42%; left: 45%; width: 35px; height: 25px; background: #f0e0c0; border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: fpl-letter 7s ease-in-out infinite; }
.scn-final-plea .inkwell { position: absolute; bottom: 40%; right: 30%; width: 12px; height: 16px; background: #2a1a0a; border-radius: 50% 50% 20% 20%; }
.scn-final-plea .shadow { position: absolute; bottom: 20%; left: 35%; right: 35%; height: 8%; background: rgba(0,0,0,0.1); filter: blur(6px); }
.scn-final-plea .candle { position: absolute; top: 32%; left: 20%; width: 8px; height: 22px; background: linear-gradient(180deg, #ffecb0 0%, #d4b070 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,220,160,0.4); animation: fpl-candle 3s ease-in-out infinite alternate; }
@keyframes fpl-hand-tremble { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(1deg) translateX(1px); } 50% { transform: rotate(-1deg) translateX(-1px); } 75% { transform: rotate(0.5deg) translateX(0.5px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes fpl-letter { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes fpl-candle { 0% { opacity: 0.8; box-shadow: 0 0 15px 4px rgba(255,220,160,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px 8px rgba(255,220,160,0.5); } 100% { opacity: 0.85; box-shadow: 0 0 20px 5px rgba(255,220,160,0.35); } }

.scn-note-to-hopkins { background: linear-gradient(180deg, #b8b8b8 0%, #9a9a9a 40%, #7a7a7a 100%), radial-gradient(ellipse at 50% 0%, #c8c8c8 0%, transparent 70%); }
.scn-note-to-hopkins .window-cloudy { position: absolute; top: 8%; left: 20%; width: 30%; height: 45%; background: linear-gradient(180deg, #d0d0d0 0%, #a0a0a0 100%); border-radius: 10px; box-shadow: inset 0 0 15px rgba(0,0,0,0.2); animation: nth-clouds 12s linear infinite; }
.scn-note-to-hopkins .desk { position: absolute; bottom: 20%; left: 10%; right: 20%; height: 30%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 6px 6px 0 0; }
.scn-note-to-hopkins .chair { position: absolute; bottom: 22%; left: 30%; width: 40px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; }
.scn-note-to-hopkins .holmes-writes { position: absolute; bottom: 28%; left: 35%; width: 35px; height: 60px; background: radial-gradient(ellipse 60% 70% at 50% 30%, #3a2a1a 0%, #1a0e08 100%); border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%; transform-origin: bottom; animation: nth-write 4s ease-in-out infinite; }
.scn-note-to-hopkins .paper { position: absolute; bottom: 30%; left: 28%; width: 25px; height: 18px; background: #e8e0d0; transform: rotate(-15deg); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.15); }
.scn-note-to-hopkins .inkwell { position: absolute; bottom: 32%; right: 35%; width: 10px; height: 14px; background: #1a0e08; border-radius: 50% 50% 10% 10%; }
.scn-note-to-hopkins .steam { position: absolute; bottom: 38%; right: 40%; width: 12px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: nth-steam 6s ease-in-out infinite; }
@keyframes nth-clouds { 0% { opacity: 0.7; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.02); } 100% { opacity: 0.7; transform: scaleX(1); } }
@keyframes nth-write { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes nth-steam { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-10px) scale(1.5); opacity: 0.1; } 100% { transform: translateY(0) scale(1); opacity: 0.3; } }

.scn-examining-body {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%), radial-gradient(ellipse at 50% 100%, #10101a 0%, transparent 60%);
}
.scn-examining-body .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #35354a 0%, #1a1a2a 100%);
  animation: eb-sky 12s ease-in-out infinite alternate;
}
.scn-examining-body .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a10 100%);
  border-radius: 10% 80% 0 0 / 20% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-examining-body .body {
  position: absolute; bottom: 15%; left: 35%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: eb-body 6s ease-in-out infinite;
}
.scn-examining-body .holmes {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: eb-holmes 8s ease-in-out infinite alternate;
}
.scn-examining-body .lamp-glow {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, #806040 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(128,96,64,.2);
  animation: eb-lamp 4s ease-in-out infinite alternate;
}
.scn-examining-body .shadow {
  position: absolute; bottom: 12%; left: 30%; width: 100px; height: 10px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: eb-shadow 6s ease-in-out infinite;
}
@keyframes eb-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes eb-body { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes eb-holmes { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes eb-lamp { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes eb-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-holmes-reconstructs-2 {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 70%);
}
.scn-holmes-reconstructs-2 .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-holmes-reconstructs-2 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-holmes-reconstructs-2 .window {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%);
  border: 4px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,100,150,.2);
  animation: hr-window 14s ease-in-out infinite alternate;
}
.scn-holmes-reconstructs-2 .table {
  position: absolute; bottom: 25%; left: 20%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: hr-table 10s ease-in-out infinite;
}
.scn-holmes-reconstructs-2 .holmes {
  position: absolute; bottom: 30%; left: 25%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform: rotate(-5deg);
  animation: hr-holmes 8s ease-in-out infinite alternate;
}
.scn-holmes-reconstructs-2 .watson {
  position: absolute; bottom: 30%; left: 45%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%;
  transform: rotate(3deg);
  animation: hr-watson 9s ease-in-out infinite alternate;
}
.scn-holmes-reconstructs-2 .lamp-stand {
  position: absolute; bottom: 28%; left: 15%; width: 6px; height: 50px;
  background: #3a3a3a;
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(200,180,100,.1);
  animation: hr-lamp 5s ease-in-out infinite alternate;
}
@keyframes hr-window { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hr-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hr-holmes { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes hr-watson { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-1px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes hr-lamp { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }

.scn-holmes-critical-moment {
  background: linear-gradient(180deg, #3a4050 0%, #2a3040 50%, #1a2030 100%);
  background: linear-gradient(180deg, #3a4050 0%, #2a3040 50%, #1a2030 100%), radial-gradient(ellipse at 50% 100%, #1a2030 0%, transparent 70%);
}
.scn-holmes-critical-moment .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  animation: hcm-sky 18s ease-in-out infinite alternate;
}
.scn-holmes-critical-moment .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: hcm-hills 22s ease-in-out infinite alternate;
}
.scn-holmes-critical-moment .road {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: hcm-road 8s ease-in-out infinite;
}
.scn-holmes-critical-moment .bicycle {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 30px;
  background: radial-gradient(circle at 20% 50%, #4a4a4a 2px, transparent 2px);
  border: 2px solid #3a3a3a;
  border-radius: 0 0 50% 50%;
  transform: rotate(-10deg);
  animation: hcm-bicycle 6s ease-in-out infinite alternate;
}
.scn-holmes-critical-moment .holmes {
  position: absolute; bottom: 18%; left: 20%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 40% 40%;
  transform: rotate(5deg);
  animation: hcm-holmes 10s ease-in-out infinite alternate;
}
.scn-holmes-critical-moment .boy {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: hcm-boy 7s ease-in-out infinite;
}
.scn-holmes-critical-moment .dust {
  position: absolute; bottom: 18%; left: 30%; width: 100px; height: 10px;
  background: rgba(255,255,255,.1);
  border-radius: 50%;
  filter: blur(6px);
  animation: hcm-dust 4s ease-in-out infinite;
}
@keyframes hcm-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hcm-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes hcm-road { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes hcm-bicycle { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(5px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes hcm-holmes { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes hcm-boy { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes hcm-dust { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-watson-objects {
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 50%, #1a0a1a 100%);
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 50%, #1a0a1a 100%), radial-gradient(ellipse at 30% 50%, #4a3a4a 0%, transparent 70%);
}
.scn-watson-objects .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%);
  animation: wo-wall 8s ease-in-out infinite alternate;
}
.scn-watson-objects .light-beam {
  position: absolute; top: 0; left: 20%; width: 3px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.05) 100%);
  box-shadow: 0 0 8px 2px rgba(200,200,200,.1);
  animation: wo-beam 6s ease-in-out infinite alternate;
}
.scn-watson-objects .holmes-profile {
  position: absolute; bottom: 20%; left: 10%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%;
  transform: rotate(5deg);
  box-shadow: -5px 0 10px rgba(0,0,0,.5);
  animation: wo-holmes 9s ease-in-out infinite alternate;
}
.scn-watson-objects .watson-profile {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 50% 50% 40% / 55% 45% 45% 55%;
  transform: rotate(-3deg);
  box-shadow: 5px 0 10px rgba(0,0,0,.4);
  animation: wo-watson 10s ease-in-out infinite alternate;
}
.scn-watson-objects .shadow-cast {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.5) 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: wo-shadow 7s ease-in-out infinite;
}
.scn-watson-objects .object-detail {
  position: absolute; bottom: 30%; left: 35%; width: 15px; height: 15px;
  background: radial-gradient(circle, #5e1a1d 0%, #3a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(94,26,29,.3);
  animation: wo-object 4s ease-in-out infinite alternate;
}
@keyframes wo-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes wo-beam { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.6; transform: scaleY(1) } }
@keyframes wo-holmes { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(-2px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes wo-watson { 0% { transform: rotate(-3deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(2px) } 100% { transform: rotate(-3deg) translateX(0) } }
@keyframes wo-shadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes wo-object { 0% { transform: scale(.9) } 50% { transform: scale(1.1) } 100% { transform: scale(.9) } }

/* Scene 1: holmes-with-housekeeper (overcast interior, warm mood) */
.scn-holmes-with-housekeeper {
  background: linear-gradient(180deg, #b8a89a 0%, #9a8a7a 40%, #7a6a5a 100%),
              radial-gradient(ellipse at 30% 40%, #d4c4b4 0%, transparent 60%);
}
.scn-holmes-with-housekeeper .wall-left {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(90deg, #8a7a6a 0%, #a89888 50%, #b8a898 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.15);
}
.scn-holmes-with-housekeeper .wall-right {
  position: absolute; inset: 0 0 0 50%;
  background: linear-gradient(90deg, #b8a898 0%, #a89888 50%, #8a7a6a 100%);
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.15);
}
.scn-holmes-with-housekeeper .window {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #9aa8b8 0%, #7a8a9a 100%);
  border: 3px solid #6a5a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,120,140,0.3);
  animation: hh-window 8s ease-in-out infinite alternate;
}
.scn-holmes-with-housekeeper .curtain-l {
  position: absolute; top: 10%; left: 30%; width: 5%; height: 50%;
  background: linear-gradient(180deg, #a08878 0%, #806858 100%);
  border-radius: 2px;
  transform-origin: top left;
  animation: hh-curtain 6s ease-in-out infinite alternate;
}
.scn-holmes-with-housekeeper .curtain-r {
  position: absolute; top: 10%; right: 30%; width: 5%; height: 50%;
  background: linear-gradient(180deg, #a08878 0%, #806858 100%);
  border-radius: 2px;
  transform-origin: top right;
  animation: hh-curtain 6s ease-in-out infinite alternate-reverse;
}
.scn-holmes-with-housekeeper .table {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateX(10deg);
}
.scn-holmes-with-housekeeper .holmes-figure {
  position: absolute; bottom: 28%; left: 30%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hh-bow 4s ease-in-out infinite;
}
.scn-holmes-with-housekeeper .housekeeper-figure {
  position: absolute; bottom: 28%; right: 30%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hh-bow 4s ease-in-out infinite 2s;
}
.scn-holmes-with-housekeeper .teacup {
  position: absolute; bottom: 20%; left: 48%; width: 4%; height: 5%;
  background: radial-gradient(circle, #d4b89a 0%, #b89878 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: hh-steam 3s ease-in-out infinite;
}
@keyframes hh-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 10px rgba(100,120,140,0.2); }
  50% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(100,120,140,0.4); }
  100% { opacity: 0.75; box-shadow: inset 0 0 15px rgba(100,120,140,0.25); }
}
@keyframes hh-curtain {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(0.9) rotate(2deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes hh-bow {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(2px) translateY(-2px) rotate(2deg); }
}
@keyframes hh-steam {
  0%,100% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-8px) scale(1.2); opacity: 0.3; }
}

/* Scene 2: smith-smoked-too (bright interior, calm mood) */
.scn-smith-smoked-too {
  background: linear-gradient(180deg, #e8d8c8 0%, #d0c0b0 40%, #b8a898 100%),
              radial-gradient(ellipse at 60% 20%, #f0e0d0 0%, transparent 50%);
}
.scn-smith-smoked-too .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%);
}
.scn-smith-smoked-too .armchair {
  position: absolute; bottom: 20%; left: 25%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
}
.scn-smith-smoked-too .figure-smith {
  position: absolute; bottom: 30%; left: 30%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-sit 5s ease-in-out infinite;
}
.scn-smith-smoked-too .cigarette {
  position: absolute; bottom: 50%; left: 38%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  border-radius: 4px;
  transform: rotate(-20deg);
  animation: st-cigarette 2s ease-in-out infinite;
}
.scn-smith-smoked-too .smoke-1 {
  position: absolute; bottom: 55%; left: 36%; width: 6%; height: 8%;
  background: radial-gradient(circle, rgba(200,180,160,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: st-smoke 6s ease-out infinite;
}
.scn-smith-smoked-too .smoke-2 {
  position: absolute; bottom: 55%; left: 40%; width: 5%; height: 10%;
  background: radial-gradient(circle, rgba(200,180,160,0.4) 0%, transparent 100%);
  filter: blur(3px);
  animation: st-smoke 6s ease-out infinite 3s;
}
.scn-smith-smoked-too .lamp {
  position: absolute; top: 10%; right: 20%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,180,160,0.3);
  animation: st-lamp 4s ease-in-out infinite alternate;
}
.scn-smith-smoked-too .lamp-glow {
  position: absolute; top: 10%; right: 20%; width: 12%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,220,180,0.15) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
@keyframes st-sit {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes st-cigarette {
  0%,100% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-22deg) translateY(-2px); }
}
@keyframes st-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-30px) scale(2); opacity: 0.3; }
  100% { transform: translateY(-60px) scale(3); opacity: 0; }
}
@keyframes st-lamp {
  0% { box-shadow: 0 0 15px 4px rgba(200,180,160,0.2); }
  50% { box-shadow: 0 0 30px 10px rgba(200,180,160,0.4); }
  100% { box-shadow: 0 0 20px 6px rgba(200,180,160,0.3); }
}

/* Scene 3: professor's-appetite (bright interior, calm) */
.scn-professor-s-appetite {
  background: linear-gradient(180deg, #d0c0b0 0%, #b8a898 50%, #a09080 100%),
              radial-gradient(ellipse at 50% 30%, #e8d8c8 0%, transparent 60%);
}
.scn-professor-s-appetite .dining-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8b8a8 0%, #a09080 100%);
}
.scn-professor-s-appetite .dining-table {
  position: absolute; bottom: 15%; left: 15%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
  transform: perspective(400px) rotateX(15deg);
}
.scn-professor-s-appetite .plate {
  position: absolute; bottom: 22%; left: 35%; width: 20%; height: 12%;
  background: radial-gradient(circle, #f0e0d0 0%, #d0c0b0 80%);
  border-radius: 50%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.1);
}
.scn-professor-s-appetite .cutlet-1 {
  position: absolute; bottom: 25%; left: 36%; width: 6%; height: 6%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 40%;
  animation: pa-cutlet 3s ease-in-out infinite;
}
.scn-professor-s-appetite .cutlet-2 {
  position: absolute; bottom: 25%; left: 42%; width: 6%; height: 6%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 40%;
  animation: pa-cutlet 3s ease-in-out infinite 1.5s;
}
.scn-professor-s-appetite .fork {
  position: absolute; bottom: 27%; left: 45%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #b0a090 0%, #908070 100%);
  border-radius: 2px;
  transform: rotate(25deg);
  animation: pa-fork 2s ease-in-out infinite alternate;
}
.scn-professor-s-appetite .professor-figure {
  position: absolute; bottom: 28%; right: 20%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-eat 4s ease-in-out infinite;
}
.scn-professor-s-appetite .steam-1 {
  position: absolute; bottom: 33%; left: 38%; width: 4%; height: 8%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.5) 0%, transparent 100%);
  filter: blur(2px);
  animation: pa-steam 3s ease-out infinite;
}
.scn-professor-s-appetite .steam-2 {
  position: absolute; bottom: 33%; left: 44%; width: 4%; height: 8%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 100%);
  filter: blur(2px);
  animation: pa-steam 3s ease-out infinite 1.5s;
}
@keyframes pa-cutlet {
  0%,100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(3deg); }
}
@keyframes pa-fork {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-2px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes pa-eat {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg) scale(1.01); }
}
@keyframes pa-steam {
  0% { transform: translateY(0) scale(1); opacity: 0.5; }
  50% { transform: translateY(-20px) scale(2); opacity: 0.2; }
  100% { transform: translateY(-40px) scale(3); opacity: 0; }
}

/* Scene 4: morning-in-garden (overcast, calm) */
.scn-morning-in-garden {
  background: linear-gradient(180deg, #a0b0c0 0%, #8090a0 40%, #607080 100%),
              radial-gradient(ellipse at 50% 100%, #7090a0 0%, transparent 70%);
}
.scn-morning-in-garden .garden-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c0d0 0%, #90a0b0 100%);
  animation: mg-sky 12s ease-in-out infinite alternate;
}
.scn-morning-in-garden .garden-fence {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 8%;
  background: repeating-linear-gradient(90deg, #7a6a5a 0%, #7a6a5a 4%, transparent 4%, transparent 8%);
  border-top: 3px solid #5a4a3a;
  box-shadow: 0 3px 6px rgba(0,0,0,0.1);
}
.scn-morning-in-garden .path {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(90deg, transparent, #b8a898 20%, #a89888 50%, #b8a898 80%, transparent);
  border-radius: 50% / 100% 100% 0 0;
  transform: perspective(200px) rotateX(20deg);
}
.scn-morning-in-garden .bush-l {
  position: absolute; bottom: 30%; left: 5%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #507050 0%, #306030 100%);
  border-radius: 50% 50% 40% 40%;
  animation: mg-bush 8s ease-in-out infinite alternate;
}
.scn-morning-in-garden .bush-r {
  position: absolute; bottom: 30%; right: 5%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #508060 0%, #307050 100%);
  border-radius: 50% 50% 40% 40%;
  animation: mg-bush 8s ease-in-out infinite alternate-reverse;
}
.scn-morning-in-garden .tree {
  position: absolute; bottom: 30%; left: 40%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  animation: mg-tree 12s ease-in-out infinite;
}
.scn-morning-in-garden .garden-figure {
  position: absolute; bottom: 25%; left: 48%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mg-walk 6s ease-in-out infinite;
}
.scn-morning-in-garden .flower-1 {
  position: absolute; bottom: 30%; left: 22%; width: 3%; height: 5%;
  background: radial-gradient(circle, #b87878 0%, #9a5858 100%);
  border-radius: 50%;
  animation: mg-flower 4s ease-in-out infinite;
}
.scn-morning-in-garden .flower-2 {
  position: absolute; bottom: 30%; right: 22%; width: 3%; height: 5%;
  background: radial-gradient(circle, #b87878 0%, #9a5858 100%);
  border-radius: 50%;
  animation: mg-flower 4s ease-in-out infinite 2s;
}
@keyframes mg-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes mg-bush {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.02) scaleY(0.98); }
  100% { transform: scaleX(1) scaleY(1); }
}
@keyframes mg-tree {
  0%,100% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.01); }
}
@keyframes mg-walk {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(5px) translateY(-2px) rotate(2deg); }
}
@keyframes mg-flower {
  0%,100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.2) rotate(10deg); }
}

.scn-holmes-explains-role {
  background: 
    linear-gradient(180deg, #e8dccc 0%, #d4c4ac 40%, #b8a088 100%),
    radial-gradient(ellipse at 50% 100%, #f0e0d0 0%, transparent 70%);
}
.scn-holmes-explains-role .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e3d5c0 0%, #cdbda8 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.05);
}
.scn-holmes-explains-role .wall.left {
  left: -40%; right: 40%; bottom: 0; top: 0;
  background: linear-gradient(180deg, #dcccb8 0%, #c8b8a4 100%);
  transform: skewX(-3deg); z-index: 1;
}
.scn-holmes-explains-role .wall.right {
  right: -40%; left: 40%; bottom: 0; top: 0;
  background: linear-gradient(180deg, #d4c4b0 0%, #bcac98 100%);
  transform: skewX(3deg); z-index: 1;
}
.scn-holmes-explains-role .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08974 0%, #8a755e 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-holmes-explains-role .desk {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #7a654c 0%, #5c4a36 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-holmes-explains-role .window {
  position: absolute; top: 12%; left: 35%; width: 28%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #e8f4ff 0%, #c0d8e8 60%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 40px rgba(200,220,240,0.6);
  animation: her-window 8s ease-in-out infinite alternate;
}
.scn-holmes-explains-role .holmes-silhouette {
  position: absolute; bottom: 22%; left: 30%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #2a241c 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: her-holmes 4s ease-in-out infinite alternate;
}
.scn-holmes-explains-role .doctor-silhouette {
  position: absolute; bottom: 22%; right: 30%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #3a3228 0%, #221c16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: her-doctor 5s ease-in-out infinite alternate;
}
.scn-holmes-explains-role .lamp-glow {
  position: absolute; top: 20%; left: 20%; width: 50%; height: 50%;
  background: radial-gradient(circle, rgba(255,230,180,0.4) 0%, transparent 70%);
  pointer-events: none;
  animation: her-lamp 3s ease-in-out infinite alternate;
}
.scn-holmes-explains-role .bookshelf {
  position: absolute; top: 10%; left: 2%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #5c4a36 0%, #3e3224 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: her-shelf 12s ease-in-out infinite;
}
@keyframes her-window {
  0% { opacity:0.8; transform:scale(1); }
  50% { opacity:1; transform:scale(1.02); }
  100% { opacity:0.9; transform:scale(0.98); }
}
@keyframes her-holmes {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes her-doctor {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes her-lamp {
  0% { opacity:0.3; transform:scale(0.9); }
  50% { opacity:0.5; transform:scale(1.1); }
  100% { opacity:0.4; transform:scale(1); }
}
@keyframes her-shelf {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-2px); }
}

.scn-doctor-claim-sympathy {
  background: 
    linear-gradient(180deg, #e3dac8 0%, #cec2ae 50%, #b8aa96 100%),
    radial-gradient(ellipse at 60% 60%, #f5edd0 0%, transparent 60%);
}
.scn-doctor-claim-sympathy .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d9ceba 0%, #c4b6a2 100%);
}
.scn-doctor-claim-sympathy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #9a856c 0%, #7e6b52 100%);
  border-radius: 0 0 10% 10%;
}
.scn-doctor-claim-sympathy .chair-back {
  position: absolute; bottom: 25%; right: 20%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #4a3826 0%, #2c2016 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(8deg);
  animation: dcs-chair 6s ease-in-out infinite alternate;
}
.scn-doctor-claim-sympathy .holmes-hand {
  position: absolute; bottom: 20%; left: 35%; width: 8%; height: 6%;
  background: radial-gradient(ellipse, #e0ccc0 0%, #b8a48e 100%);
  border-radius: 30%;
  transform: rotate(15deg);
  animation: dcs-hand-left 3s ease-in-out infinite alternate;
}
.scn-doctor-claim-sympathy .note-card {
  position: absolute; bottom: 22%; left: 38%; width: 10%; height: 8%;
  background: linear-gradient(135deg, #f0e4cc 0%, #d8c8a8 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: dcs-card 4s ease-in-out infinite alternate;
}
.scn-doctor-claim-sympathy .doctor-hand {
  position: absolute; bottom: 20%; right: 38%; width: 9%; height: 5%;
  background: radial-gradient(ellipse, #c8bcac 0%, #a0907a 100%);
  border-radius: 30%;
  transform: rotate(-10deg);
  animation: dcs-hand-right 3.5s ease-in-out infinite alternate-reverse;
}
.scn-doctor-claim-sympathy .pocket-watch {
  position: absolute; bottom: 30%; left: 50%; width: 6%; height: 6%;
  background: radial-gradient(circle, #c0a060 0%, #8a6a32 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: dcs-watch 2s ease-in-out infinite alternate;
}
.scn-doctor-claim-sympathy .lamp-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 80%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  pointer-events: none;
  animation: dcs-beam 10s ease-in-out infinite alternate;
}
@keyframes dcs-chair {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes dcs-hand-left {
  0% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(20deg) scale(1.05); }
  100% { transform: rotate(15deg) scale(1); }
}
@keyframes dcs-card {
  0% { transform: rotate(0) translateX(0); }
  50% { transform: rotate(3deg) translateX(4px); }
  100% { transform: rotate(0) translateX(0); }
}
@keyframes dcs-hand-right {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(-3px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes dcs-watch {
  0% { transform: scale(1) rotate(0); }
  50% { transform: scale(1.1) rotate(15deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes dcs-beam {
  0% { opacity:0.2; }
  50% { opacity:0.4; }
  100% { opacity:0.25; }
}

.scn-doctor-refuses {
  background: 
    linear-gradient(180deg, #d4cbc0 0%, #bfb4a4 40%, #a69580 100%),
    radial-gradient(ellipse at 50% 40%, #c8b8a0 0%, transparent 60%);
}
.scn-doctor-refuses .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #cbbfb0 0%, #b2a490 100%);
}
.scn-doctor-refuses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08974 0%, #8a755e 100%);
}
.scn-doctor-refuses .desk-angle {
  position: absolute; bottom: 18%; left: 10%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #6a553c 0%, #4e3c2a 100%);
  border-radius: 2% 2% 0 0;
  transform: perspective(400px) rotateX(5deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-doctor-refuses .holmes-figure-standing {
  position: absolute; bottom: 22%; left: 35%; width: 12%; height: 24%;
  background: linear-gradient(180deg, #1e1812 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: drf-holmes 3s ease-in-out infinite alternate;
}
.scn-doctor-refuses .doctor-figure-seated {
  position: absolute; bottom: 18%; right: 35%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #2c221a 0%, #1a120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(4deg) scaleX(0.9);
  animation: drf-doctor 2.5s ease-in-out infinite alternate;
}
.scn-doctor-refuses .papers-stack {
  position: absolute; bottom: 20%; left: 20%; width: 10%; height: 6%;
  background: linear-gradient(135deg, #e8dcc8 0%, #d0c0a8 100%);
  border-radius: 4%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: drf-papers 4s ease-in-out infinite;
}
.scn-doctor-refuses .shadow-stripe {
  position: absolute; top: 0; left: 30%; width: 4%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, transparent 50%, rgba(0,0,0,0.05) 100%);
  pointer-events: none;
  animation: drf-stripe 7s ease-in-out infinite alternate;
}
.scn-doctor-refuses .lamp-pulse {
  position: absolute; top: 10%; left: 50%; width: 30%; height: 30%;
  background: radial-gradient(circle, rgba(255,220,160,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: drf-pulse 2s ease-in-out infinite alternate;
}
@keyframes drf-holmes {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes drf-doctor {
  0% { transform: rotate(4deg) scaleX(0.9) translateY(0); }
  50% { transform: rotate(6deg) scaleX(1) translateY(-4px); }
  100% { transform: rotate(4deg) scaleX(0.9) translateY(0); }
}
@keyframes drf-papers {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(5deg); }
}
@keyframes drf-stripe {
  0% { opacity:0.3; transform: translateX(0); }
  50% { opacity:0.6; transform: translateX(5px); }
  100% { opacity:0.3; transform: translateX(0); }
}
@keyframes drf-pulse {
  0% { opacity:0.2; transform: scale(0.9); }
  50% { opacity:0.5; transform: scale(1.1); }
  100% { opacity:0.25; transform: scale(0.95); }
}

.scn-doctor-orders-out {
  background: 
    linear-gradient(180deg, #d8c8b4 0%, #c0ae96 30%, #a6927a 100%),
    radial-gradient(ellipse at 30% 40%, #d4bc9c 0%, transparent 70%);
}
.scn-doctor-orders-out .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c4b49c 0%, #ac9a82 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.08);
}
.scn-doctor-orders-out .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08974 0%, #8a755e 100%);
}
.scn-doctor-orders-out .desk-front {
  position: absolute; bottom: 18%; left: 15%; width: 50%; height: 16%;
  background: linear-gradient(180deg, #5e4c36 0%, #443422 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateX(10deg);
}
.scn-doctor-orders-out .doctor-rising {
  position: absolute; bottom: 22%; right: 30%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #2e2218 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-8deg) scaleY(1.1);
  animation: doo-doctor 0.8s ease-in-out infinite alternate;
}
.scn-doctor-orders-out .holmes-retreating {
  position: absolute; bottom: 22%; left: 25%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #1c1610 0%, #0c0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg) scaleX(0.8);
  animation: doo-holmes 1.2s ease-in-out infinite alternate;
}
.scn-doctor-orders-out .fist {
  position: absolute; bottom: 30%; right: 35%; width: 6%; height: 5%;
  background: radial-gradient(ellipse, #3a2a1c 0%, #1c1008 100%);
  border-radius: 20%;
  transform: rotate(-20deg);
  animation: doo-fist 0.6s ease-in-out infinite alternate;
}
.scn-doctor-orders-out .chair-tip {
  position: absolute; bottom: 16%; right: 38%; width: 12%; height: 10%;
  background: linear-gradient(180deg, #4a3826 0%, #2c1e12 100%);
  border-radius: 10% 10% 0 0;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: doo-chair 1s ease-in-out infinite alternate;
}
.scn-doctor-orders-out .lamp-flare {
  position: absolute; top: 10%; left: 45%; width: 25%; height: 25%;
  background: radial-gradient(circle, rgba(255,200,120,0.4) 0%, transparent 70%);
  pointer-events: none;
  animation: doo-flare 0.5s ease-in-out infinite alternate;
}
@keyframes doo-doctor {
  0% { transform: rotate(-8deg) scaleY(1.1) translateY(0); }
  50% { transform: rotate(-5deg) scaleY(1.15) translateY(-6px); }
  100% { transform: rotate(-8deg) scaleY(1.1) translateY(0); }
}
@keyframes doo-holmes {
  0% { transform: rotate(10deg) scaleX(0.8) translateX(0); }
  50% { transform: rotate(8deg) scaleX(0.75) translateX(4px); }
  100% { transform: rotate(10deg) scaleX(0.8) translateX(0); }
}
@keyframes doo-fist {
  0% { transform: rotate(-20deg) scale(1); }
  50% { transform: rotate(-15deg) scale(1.2) translate(2px,-2px); }
  100% { transform: rotate(-20deg) scale(1); }
}
@keyframes doo-chair {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-4px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes doo-flare {
  0% { opacity:0.3; transform: scale(0.9); }
  50% { opacity:0.6; transform: scale(1.15); }
  100% { opacity:0.35; transform: scale(0.95); }
}

/* Scene: holmes-explains-method */
.scn-holmes-explains-method {
  background: linear-gradient(180deg, #d4c9a8 0%, #b8a87a 40%, #8b7a5a 100%),
              radial-gradient(ellipse at 60% 30%, #f0e1c0 0%, transparent 60%);
}
.scn-holmes-explains-method .wall {
  position:absolute; inset:0 0 38% 0;
  background: linear-gradient(180deg, #cbb89a 0%, #a38b6a 100%);
  border-bottom: 2px solid #7a6a4a;
}
.scn-holmes-explains-method .desk {
  position:absolute; bottom:10%; left:20%; right:20%; height:28%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3220 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-holmes-explains-method .lamp {
  position:absolute; bottom:42%; left:50%; width:12px; height:24px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe8a0 0%, #d4a040 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 40px 12px rgba(212,160,64,0.6), 0 0 80px 20px rgba(212,160,64,0.3);
  animation: hm1-lampglow 4s ease-in-out infinite alternate;
}
.scn-holmes-explains-method .holmes-figure {
  position:absolute; bottom:10%; left:38%; width:20px; height:50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hm1-walk 6s ease-in-out infinite;
}
.scn-holmes-explains-method .map {
  position:absolute; bottom:16%; left:55%; width:40px; height:30px;
  background: linear-gradient(135deg, #d0c090 0%, #b0a070 50%, #908060 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: hm1-map-breathe 8s ease-in-out infinite;
}
.scn-holmes-explains-method .paper-stack {
  position:absolute; bottom:18%; left:45%; width:30px; height:8px;
  background: #e0d0b0;
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2), 0 1px 0 #f0e0c0 inset;
}
.scn-holmes-explains-method .glow-spot {
  position:absolute; bottom:40%; left:50%; width:100px; height:80px;
  transform: translate(-50%,-10%);
  background: radial-gradient(ellipse, rgba(255,232,160,0.3) 0%, transparent 80%);
  pointer-events: none;
  animation: hm1-spotpulse 5s ease-in-out infinite alternate;
}
@keyframes hm1-lampglow {
  0% { box-shadow: 0 0 30px 8px rgba(212,160,64,0.5), 0 0 60px 16px rgba(212,160,64,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 14px rgba(255,200,80,0.7), 0 0 100px 28px rgba(255,200,80,0.4); opacity: 1; }
  100% { box-shadow: 0 0 35px 10px rgba(212,160,64,0.5), 0 0 70px 18px rgba(212,160,64,0.25); opacity: 0.92; }
}
@keyframes hm1-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(0deg); }
  75% { transform: translateX(4px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hm1-map-breathe {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(-1deg) scale(1.02); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes hm1-spotpulse {
  0% { transform: translate(-50%,-10%) scale(0.95); opacity: 0.7; }
  100% { transform: translate(-50%,-10%) scale(1.05); opacity: 0.9; }
}

/* Scene: holmes-final-words-black-peter */
.scn-holmes-final-words-black-peter {
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 40%, #8a7a5a 100%),
              radial-gradient(ellipse at 70% 40%, #e8d4b0 0%, transparent 60%);
}
.scn-holmes-final-words-black-peter .room-back {
  position:absolute; inset:0 0 32% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
}
.scn-holmes-final-words-black-peter .desk-hw {
  position:absolute; bottom:8%; left:15%; right:15%; height:24%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2414 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-holmes-final-words-black-peter .tin-box {
  position:absolute; bottom:20%; left:50%; width:32px; height:22px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 3px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5), inset 0 1px 0 #8a7a6a;
  animation: hw-boxglint 3s ease-in-out infinite alternate;
}
.scn-holmes-final-words-black-peter .holmes-hw {
  position:absolute; bottom:10%; left:30%; width:22px; height:52px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hw-holmes 8s ease-in-out infinite;
}
.scn-holmes-final-words-black-peter .hopkins-hw {
  position:absolute; bottom:10%; right:30%; width:20px; height:48px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: hw-hopkins 6s ease-in-out infinite;
}
.scn-holmes-final-words-black-peter .papers-hw {
  position:absolute; bottom:16%; left:20%; width:40px; height:6px;
  background: #e0d0b0;
  border-radius: 1px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.3), 0 1px 0 #f0e0c0 inset;
}
.scn-holmes-final-words-black-peter .window-hw {
  position:absolute; top:12%; left:65%; width:40px; height:50px;
  background: linear-gradient(180deg, #d0e0e8 0%, #b0c8d0 100%);
  border: 4px solid #6a5a4a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: hw-windowglow 10s ease-in-out infinite alternate;
}
@keyframes hw-boxglint {
  0% { box-shadow: 0 4px 10px rgba(0,0,0,0.5), inset 0 1px 0 #8a7a6a; }
  50% { box-shadow: 0 4px 15px rgba(0,0,0,0.7), inset 0 1px 0 #9a8a7a; }
  100% { box-shadow: 0 4px 10px rgba(0,0,0,0.5), inset 0 1px 0 #8a7a6a; }
}
@keyframes hw-holmes {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hw-hopkins {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  33% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  66% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hw-windowglow {
  0% { background: linear-gradient(180deg, #d0e0e8 0%, #b0c8d0 100%); opacity: 0.8; }
  50% { background: linear-gradient(180deg, #e0f0f8 0%, #c0d8e0 100%); opacity: 1; }
  100% { background: linear-gradient(180deg, #d0e0e8 0%, #b0c8d0 100%); opacity: 0.85; }
}

/* Scene: narrative-caution */
.scn-narrative-caution {
  background: linear-gradient(180deg, #a0a8b0 0%, #808890 40%, #606870 100%),
              radial-gradient(ellipse at 50% 80%, #b8c0c8 0%, transparent 60%);
}
.scn-narrative-caution .sky-nc {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 100%);
}
.scn-narrative-caution .window-frame {
  position:absolute; top:8%; left:10%; right:10%; bottom:50%;
  border: 6px solid #4a4238;
  border-radius: 4px 4px 0 0;
  background: transparent;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
}
.scn-narrative-caution .writing-desk {
  position:absolute; bottom:12%; left:20%; right:20%; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-narrative-caution .chair-nc {
  position:absolute; bottom:10%; left:40%; width:24px; height:36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  animation: nc-chair 12s ease-in-out infinite;
}
.scn-narrative-caution .quill {
  position:absolute; bottom:22%; left:55%; width:3px; height:18px;
  background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-15deg);
  animation: nc-quill 5s ease-in-out infinite alternate;
}
.scn-narrative-caution .inkwell {
  position:absolute; bottom:18%; left:60%; width:10px; height:12px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 10% 10%;
}
.scn-narrative-caution .manuscript {
  position:absolute; bottom:16%; left:40%; width:36px; height:10px;
  background: #d8d0c0;
  border-radius: 1px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3), 0 1px 0 #e8e0d0 inset;
  animation: nc-paper 7s ease-in-out infinite;
}
.scn-narrative-caution .curtain-left {
  position:absolute; top:8%; left:0; width:12%; bottom:50%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 100%);
  border-radius: 0 20px 20px 0;
  opacity: 0.8;
  animation: nc-curtain 15s ease-in-out infinite alternate;
}
.scn-narrative-caution .curtain-right {
  position:absolute; top:8%; right:0; width:12%; bottom:50%;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20px 0 0 20px;
  opacity: 0.8;
  animation: nc-curtain 15s ease-in-out infinite alternate-reverse;
}
@keyframes nc-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes nc-quill {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes nc-paper {
  0% { transform: scale(1) translateX(0); }
  50% { transform: scale(1.02) translateX(2px); }
  100% { transform: scale(1) translateX(0); }
}
@keyframes nc-curtain {
  0% { transform: translateX(0); opacity: 0.8; }
  100% { transform: translateX(4px); opacity: 0.9; }
}

/* Scene: milverton-card */
.scn-milverton-card {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 50%, #050510 100%),
              radial-gradient(ellipse at 50% 100%, #2a2040 0%, transparent 70%);
}
.scn-milverton-card .dark-room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 50%, rgba(0,0,0,0.8) 100%);
}
.scn-milverton-card .table-mc {
  position:absolute; bottom:10%; left:20%; right:20%; height:28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 8px 30px rgba(0,0,0,0.8), inset 0 2px 0 #5a4a3a;
}
.scn-milverton-card .lamp-mc {
  position:absolute; bottom:45%; left:50%; width:14px; height:28px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 50px 15px rgba(192,128,64,0.7), 0 0 100px 30px rgba(192,128,64,0.4);
  animation: mc-lamp 3s ease-in-out infinite alternate;
}
.scn-milverton-card .card-mc {
  position:absolute; bottom:18%; left:45%; width:20px; height:14px;
  background: #d4c8a0;
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.6), inset 0 0 4px rgba(255,255,255,0.2);
  animation: mc-card 4s ease-in-out infinite alternate;
}
.scn-milverton-card .holmes-hand {
  position:absolute; bottom:14%; left:48%; width:16px; height:24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mc-hand 6s ease-in-out infinite;
}
.scn-milverton-card .shadow-fall {
  position:absolute; top:0; left:40%; right:20%; bottom:10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 100%);
  opacity: 0.6;
  animation: mc-shadow 8s ease-in-out infinite alternate;
}
.scn-milverton-card .glow-cone {
  position:absolute; bottom:20%; left:40%; right:20%; top:30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,208,128,0.2) 0%, transparent 80%);
  pointer-events: none;
  animation: mc-cone 4s ease-in-out infinite alternate;
}
@keyframes mc-lamp {
  0% { box-shadow: 0 0 40px 12px rgba(192,128,64,0.6), 0 0 80px 24px rgba(192,128,64,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 60px 18px rgba(255,200,80,0.8), 0 0 120px 36px rgba(255,200,80,0.5); opacity: 1; }
  100% { box-shadow: 0 0 45px 14px rgba(192,128,64,0.6), 0 0 90px 28px rgba(192,128,64,0.35); opacity: 0.92; }
}
@keyframes mc-card {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(8deg) translateX(2px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes mc-hand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes mc-shadow {
  0% { opacity: 0.5; transform: scaleY(1); }
  100% { opacity: 0.7; transform: scaleY(1.1); }
}
@keyframes mc-cone {
  0% { opacity: 0.6; }
  100% { opacity: 0.8; }
}

/* Scene: candles-and-wine */
.scn-candles-and-wine {
  background: linear-gradient(180deg, #4a3020 0%, #7a5838 40%, #8a6848 100%), radial-gradient(ellipse at 30% 50%, #f0d090 0%, transparent 60%);
}
.scn-candles-and-wine .tablecloth {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b89878 0%, #a08060 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
  animation: cw-tablecloth 12s ease-in-out infinite;
}
.scn-candles-and-wine .candle-1 {
  position: absolute; bottom: 44%; left: 28%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cw-candle 8s ease-in-out infinite;
}
.scn-candles-and-wine .candle-2 {
  position: absolute; bottom: 44%; right: 28%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cw-candle 8s ease-in-out infinite reverse;
}
.scn-candles-and-wine .flame-1 {
  position: absolute; bottom: 73%; left: 28%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #ffdd80 0%, #ffaa40 40%, transparent 60%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  animation: cw-flame 2s ease-in-out infinite alternate;
}
.scn-candles-and-wine .flame-2 {
  position: absolute; bottom: 73%; right: 28%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #ffdd80 0%, #ffaa40 40%, transparent 60%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  animation: cw-flame 2s ease-in-out infinite alternate-reverse;
}
.scn-candles-and-wine .bottle {
  position: absolute; bottom: 30%; left: 15%; width: 20px; height: 80px;
  background: linear-gradient(135deg, #2a5a1a 0%, #1a3a0a 50%, #2a5a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: cw-bottle 15s ease-in-out infinite;
}
.scn-candles-and-wine .glass-1 {
  position: absolute; bottom: 26%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(135deg, rgba(200,180,160,0.6) 0%, rgba(180,160,140,0.3) 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 2px 2px 6px rgba(255,255,255,0.3), 0 4px 8px rgba(0,0,0,0.2);
  animation: cw-glass 10s ease-in-out infinite;
}
.scn-candles-and-wine .glass-2 {
  position: absolute; bottom: 26%; right: 40%; width: 18px; height: 40px;
  background: linear-gradient(135deg, rgba(200,180,160,0.6) 0%, rgba(180,160,140,0.3) 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 2px 2px 6px rgba(255,255,255,0.3), 0 4px 8px rgba(0,0,0,0.2);
  animation: cw-glass 10s ease-in-out infinite reverse;
}
.scn-candles-and-wine .plate {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #d0b898 0%, #b89878 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: cw-plate 14s ease-in-out infinite;
}
@keyframes cw-tablecloth { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes cw-candle { 0%,100% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(-1px); opacity: 0.9; } }
@keyframes cw-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; } 50% { transform: scaleY(1.05) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85; } }
@keyframes cw-bottle { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes cw-glass { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes cw-plate { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(1deg); } }

/* Scene: wine-glasses-examined */
.scn-wine-glasses-examined {
  background: linear-gradient(135deg, #3a2a1a 0%, #5a4030 40%, #8a6a50 100%), radial-gradient(ellipse at 50% 30%, #c0a080 0%, transparent 80%);
}
.scn-wine-glasses-examined .table-top {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a5a40 0%, #5a3a20 100%);
  border-radius: 20% 20% 0 0;
  animation: wg-table 20s ease-in-out infinite;
}
.scn-wine-glasses-examined .glass-a {
  position: absolute; bottom: 20%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(135deg, rgba(180,160,140,0.7) 0%, rgba(140,120,100,0.3) 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 2px 2px 8px rgba(255,255,255,0.2), 0 6px 12px rgba(0,0,0,0.3);
  animation: wg-glass 8s ease-in-out infinite;
}
.scn-wine-glasses-examined .glass-b {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(135deg, rgba(180,160,140,0.7) 0%, rgba(140,120,100,0.3) 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 2px 2px 8px rgba(255,255,255,0.2), 0 6px 12px rgba(0,0,0,0.3);
  animation: wg-glass 8s ease-in-out infinite 2.5s;
}
.scn-wine-glasses-examined .glass-c {
  position: absolute; bottom: 20%; right: 20%; width: 20px; height: 50px;
  background: linear-gradient(135deg, rgba(180,160,140,0.7) 0%, rgba(140,120,100,0.3) 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 2px 2px 8px rgba(255,255,255,0.2), 0 6px 12px rgba(0,0,0,0.3);
  animation: wg-glass 8s ease-in-out infinite 5s;
}
.scn-wine-glasses-examined .bottle {
  position: absolute; bottom: 15%; left: 10%; width: 24px; height: 90px;
  background: linear-gradient(135deg, #2a5a1a 0%, #1a3a0a 50%, #2a5a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.5);
  animation: wg-bottle 15s ease-in-out infinite;
}
.scn-wine-glasses-examined .cork {
  position: absolute; bottom: 25%; left: 32%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: wg-cork 18s ease-in-out infinite;
}
.scn-wine-glasses-examined .dregs {
  position: absolute; bottom: 22%; left: 48%; width: 12px; height: 6px;
  background: radial-gradient(circle, #6a3020 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: wg-dregs 12s ease-in-out infinite;
}
@keyframes wg-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(1px); } }
@keyframes wg-glass { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes wg-bottle { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(0.3deg); } }
@keyframes wg-cork { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-1px); } }
@keyframes wg-dregs { 0%,100% { opacity: 0.6; } 50% { opacity: 0.9; } }

/* Scene: cork-examination */
.scn-cork-examination {
  background: linear-gradient(180deg, #2a2018 0%, #4a3830 40%, #6a5040 100%), radial-gradient(ellipse at 50% 40%, #806040 0%, transparent 70%);
}
.scn-cork-examination .drawer-bg {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 60%;
  background: linear-gradient(135deg, #4a3020 0%, #3a2010 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: ce-drawer-bg 20s ease-in-out infinite;
}
.scn-cork-examination .drawer-front {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(135deg, #6a4a30 0%, #5a3a20 100%);
  border: 2px solid #3a2010;
  border-top: none;
  border-radius: 0 0 8px 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ce-drawer-front 15s ease-in-out infinite;
}
.scn-cork-examination .linen {
  position: absolute; bottom: 38%; left: 35%; width: 80px; height: 30px;
  background: linear-gradient(135deg, #f0e8d8 0%, #d0c8b8 100%);
  border-radius: 10% 20% 5% 15%;
  transform: rotate(-5deg);
  filter: blur(1px);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ce-linen 18s ease-in-out infinite;
}
.scn-cork-examination .corkscrew {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(30deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ce-corkscrew 12s ease-in-out infinite;
}
.scn-cork-examination .cork {
  position: absolute; bottom: 28%; left: 55%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #b09070 0%, #907050 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-10deg);
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
  animation: ce-cork 14s ease-in-out infinite;
}
.scn-cork-examination .shadow-hand {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(135deg, rgba(20,15,10,0.6) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: ce-hand 16s ease-in-out infinite;
}
@keyframes ce-drawer-bg { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes ce-drawer-front { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ce-linen { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes ce-corkscrew { 0%,100% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(32deg) translateY(-1px); } }
@keyframes ce-cork { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes ce-hand { 0%,100% { opacity: 0.7; } 50% { opacity: 0.9; } }

/* Scene: glasses-puzzle */
.scn-glasses-puzzle {
  background: linear-gradient(135deg, #2a1a10 0%, #4a3020 40%, #7a5a40 100%), radial-gradient(ellipse at 50% 20%, #c0a080 0%, transparent 80%);
}
.scn-glasses-puzzle .table-surface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%);
  border-radius: 30% 30% 0 0;
  animation: gp-table 18s ease-in-out infinite;
}
.scn-glasses-puzzle .glass-x {
  position: absolute; bottom: 22%; left: 15%; width: 22px; height: 55px;
  background: linear-gradient(135deg, rgba(200,180,160,0.7) 0%, rgba(160,140,120,0.3) 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 3px 3px 10px rgba(255,255,255,0.15), 0 8px 16px rgba(0,0,0,0.3);
  animation: gp-glass 8s ease-in-out infinite 0s;
}
.scn-glasses-puzzle .glass-y {
  position: absolute; bottom: 22%; left: 42%; width: 22px; height: 55px;
  background: linear-gradient(135deg, rgba(200,180,160,0.7) 0%, rgba(160,140,120,0.3) 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 3px 3px 10px rgba(255,255,255,0.15), 0 8px 16px rgba(0,0,0,0.3);
  animation: gp-glass 8s ease-in-out infinite 2.7s;
}
.scn-glasses-puzzle .glass-z {
  position: absolute; bottom: 22%; right: 15%; width: 22px; height: 55px;
  background: linear-gradient(135deg, rgba(200,180,160,0.7) 0%, rgba(160,140,120,0.3) 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  box-shadow: inset 3px 3px 10px rgba(255,255,255,0.15), 0 8px 16px rgba(0,0,0,0.3);
  animation: gp-glass 8s ease-in-out infinite 5.3s;
}
.scn-glasses-puzzle .wine-splash {
  position: absolute; bottom: 24%; left: 42%; width: 16px; height: 8px;
  background: radial-gradient(circle, #7a2020 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gp-splash 10s ease-in-out infinite;
}
.scn-glasses-puzzle .mystery-shadow {
  position: absolute; bottom: 18%; left: 48%; width: 40px; height: 60px;
  background: linear-gradient(135deg, rgba(10,10,5,0.4) 0%, transparent 100%);
  border-radius: 40% 60% 50% 50% / 50% 60% 40% 50%;
  transform: rotate(25deg);
  animation: gp-shadow 22s ease-in-out infinite;
}
.scn-glasses-puzzle .reflection {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: gp-reflection 14s ease-in-out infinite;
}
@keyframes gp-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(1px); } }
@keyframes gp-glass { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gp-splash { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }
@keyframes gp-shadow { 0%,100% { transform: rotate(25deg) scaleX(1); } 50% { transform: rotate(28deg) scaleX(1.1); } }
@keyframes gp-reflection { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }

.scn-beppo-destroys-busts {
  background: linear-gradient(180deg, #e8d4b8 0%, #c8b090 40%, #a08060 100%),
              radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-beppo-destroys-busts .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c0a8 0%, #b8a088 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.08);
}
.scn-beppo-destroys-busts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.2);
}
.scn-beppo-destroys-busts .pedestal {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8a088 0%, #907060 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,.15);
}
.scn-beppo-destroys-busts .bust-head {
  position: absolute; bottom: calc(30% + 55px); left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%) rotate(5deg);
  background: radial-gradient(circle at 50% 30%, #d0b898 0%, #b09070 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.2);
  animation: bb-bust-fall 6s ease-in-out infinite;
}
.scn-beppo-destroys-busts .arm {
  position: absolute; bottom: 40%; left: 60%; width: 14px; height: 50px;
  transform-origin: 50% 10%;
  background: linear-gradient(180deg, #704030 0%, #502820 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 60% 60%;
  animation: bb-arm-swing 0.8s ease-in-out infinite alternate;
}
.scn-beppo-destroys-busts .hammer {
  position: absolute; bottom: 37%; left: 68%; width: 18px; height: 14px;
  background: radial-gradient(circle, #605040 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: bb-hammer-blow 0.8s ease-in-out infinite alternate;
}
.scn-beppo-destroys-busts .fragment-1,
.scn-beppo-destroys-busts .fragment-2 {
  position: absolute; width: 10px; height: 8px;
  background: linear-gradient(135deg, #d0b898 0%, #a08060 100%);
  border-radius: 50% 40% 40% 50%;
  opacity: 0.8;
  animation: bb-fragment-fall 3s linear infinite;
}
.scn-beppo-destroys-busts .fragment-1 { top: 50%; left: 45%; animation-delay: 0s; }
.scn-beppo-destroys-busts .fragment-2 { top: 55%; left: 42%; animation-delay: 0.6s; }

@keyframes bb-bust-fall {
  0% { transform: translateX(-50%) rotate(5deg) translateY(0); }
  25% { transform: translateX(-50%) rotate(12deg) translateY(5px); }
  50% { transform: translateX(-50%) rotate(20deg) translateY(12px); }
  75% { transform: translateX(-50%) rotate(28deg) translateY(20px); }
  100% { transform: translateX(-50%) rotate(35deg) translateY(30px); opacity: 0.5; }
}
@keyframes bb-arm-swing {
  0% { transform: rotate(-30deg); }
  100% { transform: rotate(20deg); }
}
@keyframes bb-hammer-blow {
  0% { transform: translate(0, 0) rotate(0deg); }
  100% { transform: translate(4px, -6px) rotate(15deg); }
}
@keyframes bb-fragment-fall {
  0% { transform: translate(0, 0) scale(1); opacity: 0.8; }
  50% { transform: translate(10px, 30px) scale(0.7); opacity: 0.4; }
  100% { transform: translate(20px, 60px) scale(0.3); opacity: 0; }
}

.scn-bell-rings-visitor {
  background: linear-gradient(180deg, #f0e0c8 0%, #d8c4a8 40%, #b8a088 100%),
              radial-gradient(ellipse at 50% 30%, #fff4e0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-bell-rings-visitor .doorway {
  position: absolute; right: 5%; top: 0; bottom: 25%; width: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset -4px 0 12px rgba(0,0,0,.3);
}
.scn-bell-rings-visitor .door {
  position: absolute; right: 5%; top: 0; bottom: 25%; width: 30%;
  background: linear-gradient(135deg, #8a7050 0%, #5a4020 100%);
  border-radius: 8% 8% 0 0;
  transform-origin: left center;
  animation: br-door-open 6s ease-in-out infinite;
  box-shadow: 0 0 20px rgba(0,0,0,.15);
}
.scn-bell-rings-visitor .visitor {
  position: absolute; bottom: 25%; right: 20%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,.2);
  animation: br-step-in 6s ease-in-out infinite;
}
.scn-bell-rings-visitor .carpet-bag {
  position: absolute; bottom: 22%; right: 15%; width: 20px; height: 30px;
  background: linear-gradient(135deg, #704030 0%, #402010 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-5deg);
  animation: br-bag-swing 6s ease-in-out infinite;
}
.scn-bell-rings-visitor .shadow {
  position: absolute; bottom: 25%; right: 18%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: br-shadow-fade 6s ease-in-out infinite;
}
.scn-bell-rings-visitor .step {
  position: absolute; bottom: 25%; right: 35%; width: 6px; height: 2px;
  background: #8a7050;
  border-radius: 50%;
  opacity: 0.3;
  animation: br-step-sound 1s ease-in-out infinite;
}

@keyframes br-door-open {
  0% { transform: rotateY(0deg); }
  30% { transform: rotateY(0deg); }
  50% { transform: rotateY(-40deg); }
  70% { transform: rotateY(-40deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes br-step-in {
  0% { transform: translateX(40px) translateY(0) scale(0.9); opacity: 0; }
  30% { transform: translateX(40px) translateY(0) scale(0.9); opacity: 0; }
  45% { transform: translateX(20px) translateY(-2px) scale(0.95); opacity: 1; }
  60% { transform: translateX(0) translateY(0) scale(1); opacity: 1; }
  95% { transform: translateX(0) translateY(0) scale(1); opacity: 1; }
  100% { transform: translateX(0) translateY(0) scale(1); opacity: 0; }
}
@keyframes br-bag-swing {
  0% { transform: rotate(-5deg) translateX(0); }
  45% { transform: rotate(-5deg) translateX(0); }
  55% { transform: rotate(5deg) translateX(-2px); }
  65% { transform: rotate(-3deg) translateX(0); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes br-shadow-fade {
  0% { opacity: 0; }
  35% { opacity: 0; }
  55% { opacity: 0.6; }
  80% { opacity: 0.6; }
  100% { opacity: 0; }
}
@keyframes br-step-sound {
  0% { transform: translateX(0); opacity: 0.3; }
  50% { transform: translateX(2px); opacity: 0.6; }
  100% { transform: translateX(0); opacity: 0.3; }
}

.scn-sandeford-bust-purchase {
  background: linear-gradient(180deg, #e8d8c0 0%, #d0bca0 40%, #b09878 100%),
              radial-gradient(ellipse at 50% 40%, #f8e8d0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-sandeford-bust-purchase .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,.12);
}
.scn-sandeford-bust-purchase .bust {
  position: absolute; bottom: 38%; left: 40%; width: 30px; height: 45px;
  background: radial-gradient(circle at 50% 30%, #c8b090 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.15);
  animation: sb-float 8s ease-in-out infinite;
}
.scn-sandeford-bust-purchase .letter {
  position: absolute; bottom: 42%; left: 55%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b898 100%);
  border-radius: 4%;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  transform: rotate(-10deg);
  animation: sb-letter-turn 10s ease-in-out infinite;
}
.scn-sandeford-bust-purchase .hand-left,
.scn-sandeford-bust-purchase .hand-right {
  position: absolute; bottom: 36%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
}
.scn-sandeford-bust-purchase .hand-left {
  left: 35%; transform: rotate(15deg);
  animation: sb-hand-l 6s ease-in-out infinite alternate;
}
.scn-sandeford-bust-purchase .hand-right {
  left: 48%; transform: rotate(-10deg);
  animation: sb-hand-r 6s ease-in-out infinite alternate;
}
.scn-sandeford-bust-purchase .envelope {
  position: absolute; bottom: 44%; left: 58%; width: 16px; height: 12px;
  background: linear-gradient(135deg, #f8e8d0 0%, #d8c0a0 100%);
  border-radius: 2%;
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
  animation: sb-envelope-drift 12s linear infinite;
}

@keyframes sb-float {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sb-letter-turn {
  0% { transform: rotate(-10deg) scale(1); }
  30% { transform: rotate(5deg) scale(1.02); }
  60% { transform: rotate(-3deg) scale(0.98); }
  100% { transform: rotate(-10deg) scale(1); }
}
@keyframes sb-hand-l {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(2px); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes sb-hand-r {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(-2px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes sb-envelope-drift {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0.6; }
  25% { transform: translate(3px, -2px) rotate(5deg); opacity: 0.8; }
  50% { transform: translate(-2px, 1px) rotate(-3deg); opacity: 0.7; }
  75% { transform: translate(1px, -1px) rotate(2deg); opacity: 0.9; }
  100% { transform: translate(0, 0) rotate(0deg); opacity: 0.6; }
}

.scn-explanation-purchase {
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b498 40%, #a89070 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-explanation-purchase .bookcase {
  position: absolute; left: 5%; top: 10%; bottom: 20%; width: 25%;
  background: linear-gradient(90deg, #6a5030 0%, #4a3010 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3), 4px 0 12px rgba(0,0,0,.1);
}
.scn-explanation-purchase .speaker {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,.2);
  animation: ep-speaker-gesture 8s ease-in-out infinite alternate;
}
.scn-explanation-purchase .listener {
  position: absolute; bottom: 25%; right: 20%; width: 26px; height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,.15);
  animation: ep-listener-nod 6s ease-in-out infinite;
}
.scn-explanation-purchase .chair {
  position: absolute; bottom: 20%; right: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4020 0%, #3a2010 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.1);
}
.scn-explanation-purchase .candle {
  position: absolute; bottom: 38%; left: 38%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c898 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 3px #ffd080;
}
.scn-explanation-purchase .glow {
  position: absolute; bottom: 38%; left: 38%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,208,128,0.3) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: ep-glow-pulse 4s ease-in-out infinite alternate;
}

@keyframes ep-speaker-gesture {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-2px) rotate(5deg) scale(1.02); }
  100% { transform: translateY(0) rotate(-2deg) scale(0.98); }
}
@keyframes ep-listener-nod {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ep-glow-pulse {
  0% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.6; }
  50% { transform: translate(-50%, -50%) scale(1.15); opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(0.95); opacity: 0.7; }
}

/* overton-pleads */
.scn-overton-pleads { background: linear-gradient(180deg, #f5e6c8 0%, #d4b386 40%, #8b6f47 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-overton-pleads .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #e8d4a8 0%, #a08050 100%); animation: op-bg 8s ease-in-out infinite; }
.scn-overton-pleads .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d8c090 0%, #b89860 100%); border-bottom: 4px solid #7a5e3e; }
.scn-overton-pleads .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a4e2e 0%, #4a3420 100%); }
.scn-overton-pleads .window { position:absolute; top:12%; left:60%; width:20%; height:40%; background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 100%); border: 6px solid #7a5e3e; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: op-window 12s ease-in-out infinite; }
.scn-overton-pleads .lamp { position:absolute; top:8%; left:30%; width:12px; height:20px; background: radial-gradient(circle, #ffe080 0%, #c09840 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #e0b050, 0 0 60px 20px rgba(224,176,80,.3); animation: op-lamp 3s ease-in-out infinite alternate; }
.scn-overton-pleads .figure-left { position:absolute; bottom:35%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: op-figureL 4s ease-in-out infinite; }
.scn-overton-pleads .figure-right { position:absolute; bottom:35%; right:20%; width:28px; height:68px; background: linear-gradient(180deg, #2a1a0e 0%, #0c0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: op-figureR 5s ease-in-out infinite; }
.scn-overton-pleads .table { position:absolute; bottom:35%; left:35%; width:30%; height:8px; background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%); border-radius: 2px; transform: perspective(200px) rotateX(20deg); animation: op-table 10s ease-in-out infinite; }
.scn-overton-pleads .shadow-left { position:absolute; bottom:35%; left:15%; width:40px; height:20px; background: rgba(0,0,0,.2); border-radius: 50%; filter: blur(6px); animation: op-shadow 4s ease-in-out infinite; }
@keyframes op-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes op-window { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes op-lamp { 0% { box-shadow: 0 0 20px 5px #d0a040; opacity:.8 } 50% { box-shadow: 0 0 40px 15px #ffd060; opacity:1 } 100% { box-shadow: 0 0 25px 8px #d0a040; opacity:.85 } }
@keyframes op-figureL { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes op-figureR { 0% { transform: translateX(0) translateY(0) rotate(0) scale(1); } 33% { transform: translateX(-1px) translateY(-2px) rotate(-1deg) scale(1.01); } 66% { transform: translateX(1px) translateY(0) rotate(1deg) scale(.99); } 100% { transform: translateX(0) translateY(0) rotate(0) scale(1); } }
@keyframes op-table { 0% { transform: perspective(200px) rotateX(20deg) translateY(0); } 50% { transform: perspective(200px) rotateX(22deg) translateY(-1px); } 100% { transform: perspective(200px) rotateX(20deg) translateY(0); } }
@keyframes op-shadow { 0% { transform: scaleX(1); opacity:.3 } 50% { transform: scaleX(1.1); opacity:.4 } 100% { transform: scaleX(1); opacity:.3 } }

/* missing-player-details */
.scn-missing-player-details { background: linear-gradient(180deg, #e8dcc0 0%, #c8b090 40%, #8a7050 100%), radial-gradient(ellipse at 50% 0%, #fffbe0 0%, transparent 60%); }
.scn-missing-player-details .bg { position:absolute; inset:0; background: linear-gradient(180deg, #d8c8a0 0%, #b09868 100%); animation: mp-bg 10s ease-in-out infinite; }
.scn-missing-player-details .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c0a880 0%, #a08860 100%); border-bottom: 3px solid #705840; }
.scn-missing-player-details .desk { position:absolute; bottom:30%; left:10%; width:80%; height:6%; background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%); border-radius: 2px; transform: perspective(300px) rotateX(25deg); }
.scn-missing-player-details .paper { position:absolute; bottom:38%; left:30%; width:20%; height:4%; background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a0 100%); border-radius: 1px; transform: rotate(-5deg); animation: mp-paper 6s ease-in-out infinite; }
.scn-missing-player-details .hands { position:absolute; bottom:36%; left:35%; width:24px; height:16px; background: radial-gradient(circle, #c0a080 0%, #806040 100%); border-radius: 50%; animation: mp-hands 3s ease-in-out infinite; }
.scn-missing-player-details .clock { position:absolute; bottom:55%; right:10%; width:20px; height:20px; background: radial-gradient(circle, #ffe8c0 0%, #b08850 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(0,0,0,.3); animation: mp-clock 2s ease-in-out infinite; }
.scn-missing-player-details .lamp { position:absolute; top:10%; left:15%; width:10px; height:18px; background: radial-gradient(circle, #ffe080 0%, #c09840 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 25px 8px #d0a040, 0 0 50px 15px rgba(208,160,64,.3); animation: mp-lamp 4s ease-in-out infinite alternate; }
.scn-missing-player-details .figure { position:absolute; bottom:30%; right:20%; width:26px; height:60px; background: linear-gradient(180deg, #2a1a0e 0%, #0c0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-figure 5s ease-in-out infinite; }
@keyframes mp-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mp-paper { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes mp-hands { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes mp-clock { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(0) scale(1); } }
@keyframes mp-lamp { 0% { box-shadow: 0 0 20px 5px #c09030; opacity:.8 } 50% { box-shadow: 0 0 40px 15px #ffd060; opacity:1 } 100% { box-shadow: 0 0 25px 8px #c09030; opacity:.85 } }
@keyframes mp-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 33% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 66% { transform: translateX(2px) translateY(0) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }

/* holmes-looks-up-name */
.scn-holmes-looks-up-name { background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 40%, #a08868 100%), radial-gradient(ellipse at 50% 0%, #fffdf0 0%, transparent 60%); }
.scn-holmes-looks-up-name .bg { position:absolute; inset:0; background: linear-gradient(180deg, #e0d0b0 0%, #b8a080 100%); animation: hl-bg 12s ease-in-out infinite; }
.scn-holmes-looks-up-name .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #c8b898 0%, #b09878 100%); border-bottom: 2px solid #887058; }
.scn-holmes-looks-up-name .desk { position:absolute; bottom:40%; left:5%; width:90%; height:5%; background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%); border-radius: 2px; }
.scn-holmes-looks-up-name .book { position:absolute; bottom:42%; left:20%; width:12%; height:8%; background: linear-gradient(135deg, #806040 0%, #5a3a20 100%); border-radius: 2px; transform: rotate(8deg); box-shadow: 2px 2px 4px rgba(0,0,0,.3); }
.scn-holmes-looks-up-name .hand { position:absolute; bottom:44%; left:45%; width:20px; height:32px; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hl-hand 8s ease-in-out infinite; }
.scn-holmes-looks-up-name .chair { position:absolute; bottom:40%; right:20%; width:40px; height:50px; background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%); border-radius: 30% 30% 10% 10%; }
.scn-holmes-looks-up-name .cup { position:absolute; bottom:40%; left:65%; width:8px; height:12px; background: linear-gradient(180deg, #e0d0b0 0%, #b09878 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 2px 4px rgba(0,0,0,.2); animation: hl-cup 6s ease-in-out infinite; }
@keyframes hl-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.92 } }
@keyframes hl-hand { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-6px) rotate(15deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes hl-cup { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }

/* overton-amazed */
.scn-overton-amazed { background: linear-gradient(180deg, #f5e8d0 0%, #d4b898 40%, #8b7050 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-overton-amazed .bg { position:absolute; inset:0; background: linear-gradient(180deg, #dcc8a0 0%, #b09868 100%); animation: oa-bg 7s ease-in-out infinite; }
.scn-overton-amazed .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c4a880 0%, #a08860 100%); border-bottom: 3px solid #705840; }
.scn-overton-amazed .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a4e2e 0%, #4a3420 100%); }
.scn-overton-amazed .window { position:absolute; top:10%; left:55%; width:22%; height:42%; background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 100%); border: 6px solid #7a5e3e; box-shadow: inset 0 0 18px rgba(0,0,0,.3); animation: oa-window 10s ease-in-out infinite; }
.scn-overton-amazed .figure-left { position:absolute; bottom:35%; left:25%; width:34px; height:74px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oa-figureL 3s ease-in-out infinite; }
.scn-overton-amazed .figure-right { position:absolute; bottom:35%; right:15%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a0e 0%, #0c0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oa-figureR 2.5s ease-in-out infinite; }
.scn-overton-amazed .chair-tipped { position:absolute; bottom:35%; left:15%; width:32px; height:46px; background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%); border-radius: 30% 30% 10% 10%; transform: rotate(20deg); transform-origin: bottom left; animation: oa-chair 4s ease-in-out infinite; }
.scn-overton-amazed .shadow { position:absolute; bottom:35%; left:20%; width:60px; height:25px; background: rgba(0,0,0,.25); border-radius: 50%; filter: blur(8px); animation: oa-shadow 3s ease-in-out infinite; }
@keyframes oa-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes oa-window { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes oa-figureL { 0% { transform: translateX(0) translateY(0) rotate(0) scale(1); } 25% { transform: translateX(-3px) translateY(-4px) rotate(-3deg) scale(1.05); } 50% { transform: translateX(0) translateY(0) rotate(0) scale(1); } 75% { transform: translateX(3px) translateY(-3px) rotate(3deg) scale(.95); } 100% { transform: translateX(0) translateY(0) rotate(0) scale(1); } }
@keyframes oa-figureR { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes oa-chair { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes oa-shadow { 0% { transform: scaleX(1); opacity:.4 } 50% { transform: scaleX(1.2); opacity:.6 } 100% { transform: scaleX(1); opacity:.4 } }

.scn-climbing-plan { background: linear-gradient(180deg, #f5e6d0 0%, #d9c4a8 40%, #c4a884 100%), radial-gradient(ellipse at 30% 60%, #e8d4b8 0%, transparent 60%); }
.scn-climbing-plan .bg-wall { position:absolute; inset:30% 0 0 0; background: linear-gradient(90deg, #9a8a7a 0%, #8a7a6a 50%, #7a6a5a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.3); animation: cp-wall 20s ease-in-out infinite alternate; }
.scn-climbing-plan .desk { position:absolute; bottom:8%; left:10%; width:55%; height:14%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-climbing-plan .map { position:absolute; bottom:12%; left:15%; width:30%; height:18%; background: linear-gradient(135deg, #f0e8d8 20%, #d8c8b0 80%); border-radius:2%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: cp-map 8s ease-in-out infinite; }
.scn-climbing-plan .lantern { position:absolute; bottom:16%; left:50%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #cc8844 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 24px 8px #cc8844, 0 0 48px 16px rgba(204,136,68,0.3); animation: cp-lantern 4s ease-in-out infinite alternate; }
.scn-climbing-plan .figure { position:absolute; bottom:22%; left:38%; width:20px; height:38px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-figure 6s ease-in-out infinite; }
.scn-climbing-plan .shadow { position:absolute; bottom:6%; left:30%; width:40%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: cp-shadow 10s ease-in-out infinite alternate; }
@keyframes cp-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cp-map { 0% { transform: rotate(0deg) translate(0,0); } 25% { transform: rotate(2deg) translate(1px,-1px); } 50% { transform: rotate(0deg) translate(0,0); } 75% { transform: rotate(-2deg) translate(-1px,1px); } 100% { transform: rotate(0deg) translate(0,0); } }
@keyframes cp-lantern { 0% { box-shadow: 0 0 18px 4px #cc8844, 0 0 36px 8px rgba(204,136,68,0.2); opacity:0.8; } 50% { box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 18px rgba(255,208,128,0.4); opacity:1; } 100% { box-shadow: 0 0 22px 6px #cc8844, 0 0 44px 12px rgba(204,136,68,0.25); opacity:0.85; } }
@keyframes cp-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cp-shadow { 0% { transform: scaleX(0.9); opacity:0.7; } 100% { transform: scaleX(1.1); opacity:0.9; } }

.scn-wall-ascent { background: linear-gradient(180deg, #c4b0a0 0%, #a08878 40%, #7a6658 100%), radial-gradient(ellipse at 50% 80%, #b8a898 0%, transparent 50%); }
.scn-wall-ascent .wall { position:absolute; inset:0 70% 0 0; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%); box-shadow: inset -4px 0 8px rgba(0,0,0,0.3); animation: wa-wall 15s ease-in-out infinite alternate; }
.scn-wall-ascent .ledge { position:absolute; bottom:40%; left:0; width:70%; height:6%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 0 10% 10% 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: wa-ledge 6s ease-in-out infinite; }
.scn-wall-ascent .hand { position:absolute; bottom:40%; left:10%; width:12px; height:18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom right; animation: wa-hand 4s ease-in-out infinite; }
.scn-wall-ascent .foothold { position:absolute; bottom:50%; left:20%; width:8px; height:6px; background: #5a4a3a; border-radius: 30%; animation: wa-foothold 5s ease-in-out infinite alternate; }
.scn-wall-ascent .shadow { position:absolute; bottom:0; left:0; width:70%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%); animation: wa-shadow 12s ease-in-out infinite alternate; }
.scn-wall-ascent .rope { position:absolute; top:0; left:14%; width:2px; height:60%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 1px; transform-origin: top center; animation: wa-rope 3s ease-in-out infinite; }
@keyframes wa-wall { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.97); } 100% { transform: scaleX(1); } }
@keyframes wa-ledge { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(1.2); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes wa-hand { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(3px,-4px) rotate(10deg); } 50% { transform: translate(6px,-8px) rotate(20deg); } 75% { transform: translate(3px,-4px) rotate(10deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes wa-foothold { 0% { opacity:0.6; } 100% { opacity:1; } }
@keyframes wa-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes wa-rope { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }

.scn-dangerous-climb { background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 30%, #0a0a1a 60%, #1a1a2a 100%), radial-gradient(ellipse at 20% 50%, #3a3a5e 0%, transparent 50%); }
.scn-dangerous-climb .chasm { position:absolute; inset:0 40% 0 0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 0 20% 20% 0 / 0 50% 50% 0; animation: dc-chasm 20s ease-in-out infinite alternate; }
.scn-dangerous-climb .waterfall { position:absolute; top:0; left:30%; width:8%; height:100%; background: linear-gradient(180deg, rgba(180,220,255,0.6) 0%, rgba(180,220,255,0.2) 50%, transparent 100%); border-radius: 0 0 40% 40%; filter: blur(4px); animation: dc-waterfall 2s linear infinite; }
.scn-dangerous-climb .figure-clinging { position:absolute; bottom:30%; left:10%; width:16px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom left; animation: dc-figure 3s ease-in-out infinite; }
.scn-dangerous-climb .mist { position:absolute; bottom:0; left:0; width:100%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(240,240,250,0.15) 0%, transparent 70%); animation: dc-mist 8s ease-in-out infinite alternate; }
.scn-dangerous-climb .rock { position:absolute; bottom:15%; left:5%; width:30px; height:20px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 30% 40% 20% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: dc-rock 12s ease-in-out infinite; }
.scn-dangerous-climb .falling-stones { position:absolute; top:10%; left:20%; width:6px; height:6px; background: #5a4a3a; border-radius: 30%; box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: dc-stones 4s linear infinite; }
@keyframes dc-chasm { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes dc-waterfall { 0% { transform: translateY(0); opacity:0.6; } 50% { transform: translateY(10px); opacity:0.8; } 100% { transform: translateY(0); opacity:0.6; } }
@keyframes dc-figure { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-3px) rotate(5deg); } 50% { transform: translate(4px,-6px) rotate(10deg); } 75% { transform: translate(2px,-3px) rotate(5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes dc-mist { 0% { opacity:0.3; transform: scaleY(0.9); } 100% { opacity:0.6; transform: scaleY(1.1); } }
@keyframes dc-rock { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(1px,-1px) rotate(2deg); } 66% { transform: translate(-1px,1px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes dc-stones { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 50% { transform: translateY(40px) rotate(180deg); opacity:0.5; } 100% { transform: translateY(80px) rotate(360deg); opacity:0; } }

.scn-waiting-on-ledge { background: linear-gradient(180deg, #2a3a2a 0%, #3a4a3a 30%, #4a5a4a 60%, #3a4a3a 100%), radial-gradient(ellipse at 50% 80%, #4a6a4a 0%, transparent 60%); }
.scn-waiting-on-ledge .cave-bg { position:absolute; inset:20% 0 0 0; background: linear-gradient(180deg, #1a1a12 0%, #2a2a1a 50%, #1a1a12 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; animation: wl-cave 25s ease-in-out infinite alternate; }
.scn-waiting-on-ledge .ledge { position:absolute; bottom:20%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
.scn-waiting-on-ledge .moss { position:absolute; bottom:22%; left:12%; width:76%; height:10%; background: radial-gradient(ellipse at 30% 50%, #6a8a5a 0%, transparent 60%), radial-gradient(ellipse at 70% 50%, #7a9a6a 0%, transparent 50%); border-radius: 30% 30% 20% 20%; filter: blur(2px); animation: wl-moss 10s ease-in-out infinite alternate; }
.scn-waiting-on-ledge .figure-reclining { position:absolute; bottom:30%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wl-figure 7s ease-in-out infinite; }
.scn-waiting-on-ledge .light-beam { position:absolute; top:0; left:30%; width:40%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%); border-radius: 20% 20% 0 0; filter: blur(8px); animation: wl-beam 15s ease-in-out infinite alternate; }
.scn-waiting-on-ledge .outside-sky { position:absolute; top:0; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #a0c0e0 0%, #7090b0 100%); border-radius: 0 0 40% 40%; animation: wl-sky 12s ease-in-out infinite alternate; }
.scn-waiting-on-ledge .cloud { position:absolute; top:4%; left:35%; width:40px; height:10px; background: rgba(255,255,255,0.4); border-radius:50%; filter: blur(4px); animation: wl-cloud 30s linear infinite; }
@keyframes wl-cave { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes wl-moss { 0% { transform: scale(0.95); opacity:0.8; } 100% { transform: scale(1.05); opacity:1; } }
@keyframes wl-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wl-beam { 0% { opacity:0.4; transform: scaleX(0.9); } 50% { opacity:0.7; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(0.95); } }
@keyframes wl-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes wl-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120px); } }

.scn-deduction-of-hiding-place {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 100%), radial-gradient(ellipse at 50% 100%, #d4b99c 0%, transparent 60%);
}
.scn-deduction-of-hiding-place .room { position:absolute; inset:0; background: linear-gradient(135deg, #f0e0ca 0%, #dcc9ac 100%); animation: dhp-room 12s ease-in-out infinite alternate; }
.scn-deduction-of-hiding-place .window { position:absolute; top:10%; left:60%; width:30%; height:40%; background: linear-gradient(180deg, #e0f0ff 0%, #c0d8f0 100%); border:4px solid #8b7355; border-radius:4px; animation: dhp-window 8s ease-in-out infinite alternate; }
.scn-deduction-of-hiding-place .table { position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:4px; }
.scn-deduction-of-hiding-place .glasses { position:absolute; bottom:24%; left:45%; width:8%; height:5%; background: radial-gradient(circle, #d4c9b0 40%, transparent 60%); border-radius: 50%; box-shadow: 0 0 8px 4px rgba(180,160,120,0.5); animation: dhp-glow 4s ease-in-out infinite alternate; }
.scn-deduction-of-hiding-place .figure { position:absolute; bottom:20%; left:20%; width:12%; height:30%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dhp-figure 6s ease-in-out infinite; }
.scn-deduction-of-hiding-place .shadow { position:absolute; bottom:20%; left:20%; width:12%; height:10%; background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(8px); animation: dhp-shadow 6s ease-in-out infinite; }
@keyframes dhp-room { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes dhp-window { 0% { background: linear-gradient(180deg, #e0f0ff 0%, #c0d8f0 100%); } 50% { background: linear-gradient(180deg, #d8eeff 0%, #b8d0e8 100%); } 100% { background: linear-gradient(180deg, #e0f0ff 0%, #c0d8f0 100%); } }
@keyframes dhp-glow { 0% { opacity:0.7; box-shadow:0 0 6px 2px rgba(180,160,120,0.4); transform: scale(1); } 50% { opacity:1; box-shadow:0 0 14px 6px rgba(200,180,140,0.8); transform: scale(1.05); } 100% { opacity:0.8; box-shadow:0 0 8px 3px rgba(180,160,120,0.5); transform: scale(1); } }
@keyframes dhp-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dhp-shadow { 0% { transform: translateY(0) scaleX(1); opacity:0.6; } 50% { transform: translateY(-2px) scaleX(0.95); opacity:0.8; } 100% { transform: translateY(0) scaleX(1); opacity:0.6; } }

.scn-cigarette-ash-trick {
  background: linear-gradient(180deg, #eddcc8 0%, #dcc9ac 100%), radial-gradient(ellipse at 50% 0%, #f5e6d0 0%, transparent 70%);
}
.scn-cigarette-ash-trick .wall { position:absolute; inset:0 20% 0 0; background: linear-gradient(180deg, #d6c4a8 0%, #c0a888 100%); }
.scn-cigarette-ash-trick .shelf { position:absolute; top:10%; left:0; right:20%; height:60%; background: repeating-linear-gradient(0deg, #8b7355 0px, #8b7355 4px, #a08060 4px, #a08060 8px); border-right: 3px solid #5a4030; animation: cat-shelf 10s ease-in-out infinite alternate; }
.scn-cigarette-ash-trick .books-pile { position:absolute; bottom:15%; left:5%; width:15%; height:20%; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-cigarette-ash-trick .recess { position:absolute; top:20%; left:15%; width:8%; height:30%; background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.6); animation: cat-recess 12s ease-in-out infinite alternate; }
.scn-cigarette-ash-trick .figure { position:absolute; bottom:10%; left:0%; width:15%; height:40%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cat-figure 5s ease-in-out infinite; }
.scn-cigarette-ash-trick .lantern { position:absolute; bottom:18%; left:22%; width:5%; height:7%; background: radial-gradient(circle, #ffd680 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,214,128,0.6); animation: cat-lantern 8s ease-in-out infinite alternate; }
@keyframes cat-shelf { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cat-recess { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.6); } 50% { box-shadow: inset 0 0 15px rgba(0,0,0,0.8); } 100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.6); } }
@keyframes cat-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cat-lantern { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.9; transform: scale(1); } }

.scn-ash-reveals-tracks {
  background: linear-gradient(180deg, #f0e0ca 0%, #e0c8a8 100%), radial-gradient(ellipse at 50% 50%, #f5e6d0 0%, transparent 60%);
}
.scn-ash-reveals-tracks .bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d5b8 0%, #d4b99c 100%); }
.scn-ash-reveals-tracks .table { position:absolute; bottom:15%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 6px 6px 0 0; }
.scn-ash-reveals-tracks .plate { position:absolute; bottom:18%; left:35%; width:15%; height:5%; background: linear-gradient(180deg, #f0e8e0 0%, #d0c0b0 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
.scn-ash-reveals-tracks .ash { position:absolute; bottom:20%; left:40%; width:4%; height:3%; background: radial-gradient(circle, #c8b8a0 0%, #a09078 100%); border-radius: 50%; filter: blur(1px); animation: art-ash 6s ease-in-out infinite alternate; }
.scn-ash-reveals-tracks .chair { position:absolute; bottom:15%; right:25%; width:12%; height:25%; background: linear-gradient(180deg, #8a7050 0%, #604830 100%); border-radius: 20% 20% 10% 10%; }
.scn-ash-reveals-tracks .figure { position:absolute; bottom:10%; right:20%; width:16%; height:35%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: art-figure 7s ease-in-out infinite; }
@keyframes art-ash { 0% { opacity:0.6; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(0.9); } }
@keyframes art-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-conclusion {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 100%), radial-gradient(ellipse at 50% 100%, #dcc9ac 0%, transparent 60%);
}
.scn-conclusion .station-bg { position:absolute; inset:0; background: linear-gradient(90deg, #e8d5b8 0%, #f0e0ca 50%, #e8d5b8 100%); animation: con-bg 15s ease-in-out infinite alternate; }
.scn-conclusion .arch { position:absolute; top:0; left:50%; width:40%; height:100%; background: transparent; border-left: 8px solid #8b7355; border-right: 8px solid #8b7355; overflow: visible; }
.scn-conclusion .arch::before { content:''; position:absolute; top:-10%; left:-5%; width:110%; height:40%; border-radius: 50% 50% 0 0; border: 8px solid #8b7355; border-bottom: 0; }
.scn-conclusion .bench { position:absolute; bottom:15%; left:10%; width:25%; height:8%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4px; }
.scn-conclusion .figure1 { position:absolute; bottom:10%; left:12%; width:14%; height:35%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: con-figure1 6s ease-in-out infinite; }
.scn-conclusion .figure2 { position:absolute; bottom:10%; left:30%; width:14%; height:35%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: con-figure2 7s ease-in-out infinite; }
.scn-conclusion .lamp { position:absolute; top:15%; right:15%; width:4%; height:15%; background: linear-gradient(180deg, #8a7050 0%, #604830 100%); border-radius: 2px; }
.scn-conclusion .lamp::after { content:''; position:absolute; top:-40%; left:-50%; width:200%; height:50%; background: radial-gradient(circle, #ffd680 0%, transparent 70%); opacity:0.6; animation: con-lamp 5s ease-in-out infinite alternate; }
@keyframes con-bg { 0% { background: linear-gradient(90deg, #e8d5b8 0%, #f0e0ca 50%, #e8d5b8 100%); } 50% { background: linear-gradient(90deg, #f0e0ca 0%, #f5e6d0 50%, #f0e0ca 100%); } 100% { background: linear-gradient(90deg, #e8d5b8 0%, #f0e0ca 50%, #e8d5b8 100%); } }
@keyframes con-figure1 { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes con-figure2 { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes con-lamp { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-holmes-interested-in-burglary {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #efe0cc 40%, #dcc9b0 100%),
    radial-gradient(ellipse at 30% 20%, #fff5e6 0%, transparent 50%);
}
.scn-holmes-interested-in-burglary .bg-room       { position:absolute;inset:0;background:linear-gradient(135deg,#e8d9c4 0%,#d4c0a8 100%);animation:hbi-bg 20s ease-in-out infinite alternate; }
.scn-holmes-interested-in-burglary .window-hbi     { position:absolute;top:10%;right:8%;width:30%;height:45%;background:radial-gradient(ellipse at 50% 40%,#c4e0ff 0%,#a8cce0 70%),linear-gradient(180deg,#b0d8ff 0%,#8cb8d8 100%);border-radius:6px 6px 4px 4px;box-shadow:inset 0 0 30px rgba(180,220,255,.3);animation:hbi-window 8s ease-in-out infinite; }
.scn-holmes-interested-in-burglary .curtain-hbi    { position:absolute;top:9%;right:7%;width:32%;height:48%;background:linear-gradient(90deg,rgba(100,60,40,.4) 0%,rgba(100,60,40,.1) 50%,rgba(100,60,40,.4) 100%);border-radius:8px;animation:hbi-curtain 12s ease-in-out infinite alternate; }
.scn-holmes-interested-in-burglary .lamp-hbi       { position:absolute;bottom:20%;left:20%;width:20px;height:50px;background:linear-gradient(180deg,#c09850 0%,#a07830 100%);border-radius:6px 6px 4px 4px;box-shadow:0 0 40px 10px rgba(255,220,130,.5);animation:hbi-lamp 4s ease-in-out infinite; }
.scn-holmes-interested-in-burglary .desk-hbi       { position:absolute;bottom:18%;left:12%;right:12%;height:6%;background:linear-gradient(180deg,#7a5a3a 0%,#5a3a1a 100%);border-radius:4px;box-shadow:0 -4px 12px rgba(0,0,0,.3); }
.scn-holmes-interested-in-burglary .chair-hbi      { position:absolute;bottom:20%;left:28%;width:70px;height:80px;background:linear-gradient(180deg,#5a3a1a 0%,#3a1a0a 100%);border-radius:30% 30% 8% 8%;transform:skewX(-5deg);box-shadow:4px 6px 12px rgba(0,0,0,.4); }
.scn-holmes-interested-in-burglary .figure-hbi     { position:absolute;bottom:24%;left:30%;width:40px;height:60px;background:linear-gradient(180deg,#2a1a0a 0%,#1a0a00 100%);border-radius:45% 45% 40% 40% / 55% 55% 40% 40%;transform-origin:bottom center;animation:hbi-figure 6s ease-in-out infinite; }
@keyframes hbi-bg      { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes hbi-window  { 0% { box-shadow:inset 0 0 30px rgba(180,220,255,.5);opacity:.8 } 50% { box-shadow:inset 0 0 60px rgba(200,240,255,.7);opacity:1 } 100% { box-shadow:inset 0 0 20px rgba(160,200,240,.3);opacity:.85 } }
@keyframes hbi-curtain { 0% { transform:translateX(0) skewX(0) } 50% { transform:translateX(-4px) skewX(2deg) } 100% { transform:translateX(0) skewX(0) } }
@keyframes hbi-lamp    { 0% { box-shadow:0 0 30px 8px rgba(255,220,130,.4);opacity:.9 } 50% { box-shadow:0 0 60px 15px rgba(255,220,130,.7);opacity:1 } 100% { box-shadow:0 0 35px 10px rgba(255,220,130,.5);opacity:.92 } }
@keyframes hbi-figure  { 0% { transform:rotate(5deg) translateY(0) } 30% { transform:rotate(-3deg) translateY(-6px) } 50% { transform:rotate(-8deg) translateY(-10px) } 80% { transform:rotate(0deg) translateY(-3px) } 100% { transform:rotate(5deg) translateY(0) } }

.scn-second-case {
  background:
    linear-gradient(180deg, #eae2d0 0%, #d4c9b5 40%, #b8ab9a 100%),
    radial-gradient(ellipse at 80% 60%, #dfd5c0 0%, transparent 60%);
}
.scn-second-case .bg-surgery { position:absolute;inset:0;background:linear-gradient(135deg,#d9ceb8 0%,#c5b8a4 100%);animation:sc2-bg 15s ease-in-out infinite alternate; }
.scn-second-case .wall-sc2   { position:absolute;top:0;left:0;right:0;height:70%;background:linear-gradient(180deg,#e3d8c4 0%,#cdbfac 100%);border-radius:0 0 40% 40% / 0 0 60% 60%;box-shadow:inset 0 20px 40px rgba(0,0,0,.05); }
.scn-second-case .window-sc2 { position:absolute;top:12%;left:60%;width:28%;height:35%;background:linear-gradient(180deg,#a0c0d0 0%,#7a9aaa 100%);border-radius:8px;box-shadow:inset 0 0 20px rgba(100,150,180,.3);animation:sc2-window 4s ease-in-out infinite; }
.scn-second-case .bust-sc2   { position:absolute;top:20%;left:35%;width:40px;height:50px;background:linear-gradient(180deg,#c8b8a0 0%,#a89880 100%);border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;box-shadow:2px 4px 10px rgba(0,0,0,.2); }
.scn-second-case .desk-sc2   { position:absolute;bottom:22%;left:15%;right:10%;height:5%;background:linear-gradient(180deg,#6a4a2a 0%,#4a2a0a 100%);border-radius:4px;box-shadow:0 -3px 8px rgba(0,0,0,.3); }
.scn-second-case .figure-sc2 { position:absolute;bottom:24%;left:20%;width:36px;height:60px;background:linear-gradient(180deg,#1a1a1a 0%,#0a0a0a 100%);border-radius:45% 45% 40% 40% / 55% 55% 40% 40%;transform-origin:bottom center;animation:sc2-figure 2.5s ease-in-out infinite; }
.scn-second-case .lamp-sc2   { position:absolute;bottom:28%;left:50%;width:16px;height:40px;background:linear-gradient(180deg,#c09850 0%,#a07830 100%);border-radius:6px;box-shadow:0 0 30px 8px rgba(255,200,100,.6);animation:sc2-lamp 1.5s ease-in-out infinite; }
@keyframes sc2-bg      { 0%,100% { opacity:.95 } 50% { opacity:1 } }
@keyframes sc2-window  { 0% { box-shadow:inset 0 0 20px rgba(100,150,180,.3); } 50% { box-shadow:inset 0 0 40px rgba(100,150,180,.7),0 0 20px rgba(100,150,180,.3); } 100% { box-shadow:inset 0 0 20px rgba(100,150,180,.3); } }
@keyframes sc2-figure  { 0% { transform:translateX(0) rotate(0) scaleY(1) } 30% { transform:translateX(-8px) rotate(-4deg) scaleY(.98) } 60% { transform:translateX(4px) rotate(2deg) scaleY(1.02) } 100% { transform:translateX(0) rotate(0) scaleY(1) } }
@keyframes sc2-lamp    { 0% { opacity:.7;box-shadow:0 0 20px 5px rgba(255,200,100,.4) } 50% { opacity:1;box-shadow:0 0 50px 12px rgba(255,200,100,.8) } 100% { opacity:.75;box-shadow:0 0 25px 6px rgba(255,200,100,.5) } }

.scn-holmes-comments {
  background:
    linear-gradient(180deg, #f0dcc0 0%, #e6ceac 40%, #d4b694 100%),
    radial-gradient(ellipse at 70% 20%, #ffe8d0 0%, transparent 50%);
}
.scn-holmes-comments .bg-fireplace { position:absolute;inset:0;background:linear-gradient(135deg,#e4ceaa 0%,#d0b890 100%);animation:hco-bg 18s ease-in-out infinite alternate; }
.scn-holmes-comments .mantel-hco   { position:absolute;bottom:50%;left:10%;right:10%;height:4%;background:linear-gradient(180deg,#8a6a4a 0%,#6a4a2a 100%);border-radius:4px;box-shadow:0 -6px 20px rgba(0,0,0,.3); }
.scn-holmes-comments .fire-hco     { position:absolute;bottom:45%;left:35%;width:60px;height:80px;background:radial-gradient(ellipse at 50% 60%,#ffaa30 0%,#cc6600 40%,#8a4400 70%,transparent 100%);border-radius:50%;filter:blur(3px);animation:hco-fire 3s ease-in-out infinite; }
.scn-holmes-comments .chair-hco    { position:absolute;bottom:18%;left:25%;width:80px;height:70px;background:linear-gradient(180deg,#5a3a1a 0%,#3a1a0a 100%);border-radius:30% 30% 8% 8%;transform:skewX(5deg);box-shadow:2px 4px 10px rgba(0,0,0,.4); }
.scn-holmes-comments .figure-hco   { position:absolute;bottom:20%;left:28%;width:40px;height:65px;background:linear-gradient(180deg,#2a1a0a 0%,#1a0a00 100%);border-radius:45% 45% 40% 40% / 55% 55% 40% 40%;transform-origin:bottom center;animation:hco-figure 5s ease-in-out infinite; }
.scn-holmes-comments .hands-hco    { position:absolute;bottom:32%;left:35%;width:14px;height:10px;background:#1a0a00;border-radius:50%;animation:hco-hands 5s ease-in-out infinite; }
@keyframes hco-bg      { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes hco-fire    { 0% { transform:scale(1) translateY(0);opacity:.6 } 30% { transform:scale(1.1) translateY(-4px);opacity:.9 } 60% { transform:scale(.95) translateY(2px);opacity:.7 } 100% { transform:scale(1) translateY(0);opacity:.65 } }
@keyframes hco-figure  { 0% { transform:rotate(2deg) translateY(0) } 30% { transform:rotate(-2deg) translateY(-5px) } 60% { transform:rotate(4deg) translateY(-2px) } 100% { transform:rotate(2deg) translateY(0) } }
@keyframes hco-hands   { 0% { transform:translate(0,0) scaleX(1) } 25% { transform:translate(8px,-2px) scaleX(1.3) } 50% { transform:translate(0,0) scaleX(1) } 75% { transform:translate(-6px,-1px) scaleX(1.2) } 100% { transform:translate(0,0) scaleX(1) } }

.scn-lestrade-counter-argument {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d6c8b0 40%, #c0ae96 100%),
    radial-gradient(ellipse at 40% 30%, #f0e4d0 0%, transparent 60%);
}
.scn-lestrade-counter-argument .bg-study    { position:absolute;inset:0;background:linear-gradient(135deg,#dcccb4 0%,#c8b8a0 100%);animation:lca-bg 22s ease-in-out infinite alternate; }
.scn-lestrade-counter-argument .desk-lca    { position:absolute;bottom:20%;left:10%;right:10%;height:5%;background:linear-gradient(180deg,#7a5a3a 0%,#5a3a1a 100%);border-radius:4px;box-shadow:0 -4px 12px rgba(0,0,0,.25); }
.scn-lestrade-counter-argument .chair-lca   { position:absolute;bottom:18%;left:60%;width:60px;height:70px;background:linear-gradient(180deg,#5a3a1a 0%,#3a1a0a 100%);border-radius:30% 30% 8% 8%;transform:skewX(-3deg);box-shadow:2px 4px 10px rgba(0,0,0,.35); }
.scn-lestrade-counter-argument .figure-lca  { position:absolute;bottom:22%;left:55%;width:36px;height:62px;background:linear-gradient(180deg,#1a1a1a 0%,#0a0a0a 100%);border-radius:45% 45% 40% 40% / 55% 55% 40% 40%;transform-origin:bottom center;animation:lca-figure 7s ease-in-out infinite; }
.scn-lestrade-counter-argument .pipe-lca    { position:absolute;bottom:35%;left:55%;width:30px;height:6px;background:linear-gradient(90deg,#3a2a1a 0%,#6a4a2a 100%);border-radius:50% / 100% 100% 0 0;transform:rotate(-20deg);animation:lca-pipe 4s ease-in-out infinite; }
.scn-lestrade-counter-argument .hat-lca     { position:absolute;bottom:52%;left:50%;width:30px;height:14px;background:linear-gradient(180deg,#2a1a0a 0%,#1a0a00 100%);border-radius:50% 50% 40% 40%;transform:rotate(5deg);animation:lca-hat 9s ease-in-out infinite alternate; }
.scn-lestrade-counter-argument .shadow-lca  { position:absolute;bottom:0;left:40%;right:20%;height:8%;background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,transparent 100%);border-radius:50%;animation:lca-shadow 7s ease-in-out infinite; }
@keyframes lca-bg      { 0%,100% { opacity:.92 } 50% { opacity:1 } }
@keyframes lca-figure  { 0% { transform:rotate(-2deg) translateY(0) } 40% { transform:rotate(3deg) translateY(-4px) } 80% { transform:rotate(-1deg) translateY(-2px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes lca-pipe    { 0% { transform:rotate(-20deg) translateY(0) } 50% { transform:rotate(-15deg) translateY(-2px) } 100% { transform:rotate(-20deg) translateY(0) } }
@keyframes lca-hat     { 0% { transform:rotate(5deg) } 50% { transform:rotate(0deg) } 100% { transform:rotate(5deg) } }
@keyframes lca-shadow  { 0% { opacity:.3;transform:scaleX(1) } 50% { opacity:.5;transform:scaleX(1.1) } 100% { opacity:.3;transform:scaleX(1) } }

.scn-gilchrist-character {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #c0a888 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e8 0%, #d4c4a8 60%, transparent 80%);
}
.scn-gilchrist-character .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #d4c4a8 0%, #e8dcc8 50%, #d4c4a8 100%); }
.scn-gilchrist-character .window-frame { position:absolute; top:8%; left:60%; width:120px; height:160px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.3); transform: perspective(600px) rotateY(-8deg); }
.scn-gilchrist-character .window-light { position:absolute; top:12%; left:64%; width:80px; height:120px; background: linear-gradient(180deg, #fff8e0 0%, #ffe8b0 50%, #f0d090 100%); border-radius:2px; box-shadow: 0 0 40px 20px rgba(255,248,224,.6), 0 0 80px 40px rgba(255,232,176,.3); animation: gc-light 6s ease-in-out infinite alternate; }
.scn-gilchrist-character .desk { position:absolute; bottom:10%; left:15%; right:5%; height:30%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius:4px 4px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.3); }
.scn-gilchrist-character .books { position:absolute; bottom:30%; left:20%; width:120px; height:40px; background: linear-gradient(90deg, #8a3020 0%, #a04030 20%, #4a6a3a 40%, #5a3a6a 60%, #6a5040 80%, #8a3020 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-gilchrist-character .figure-silhouette { position:absolute; bottom:18%; left:30%; width:70px; height:110px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.5); transform-origin: bottom center; animation: gc-figure 5s ease-in-out infinite; }
.scn-gilchrist-character .trophy { position:absolute; bottom:36%; left:68%; width:24px; height:36px; background: linear-gradient(180deg, #d4a040 0%, #b08030 50%, #906020 100%); border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: rotate(5deg); animation: gc-trophy 8s ease-in-out infinite; }
.scn-gilchrist-character .dust-mote { position:absolute; width:6px; height:6px; background: radial-gradient(circle, #fff8e0 0%, transparent 70%); border-radius:50%; filter: blur(1px); }
.scn-gilchrist-character .mote-1 { top:20%; left:30%; animation: gc-mote 12s linear infinite; }
.scn-gilchrist-character .mote-2 { top:40%; left:50%; animation: gc-mote 18s linear infinite reverse; animation-delay: -6s; }
@keyframes gc-light { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.85; transform: scale(.98) } }
@keyframes gc-figure { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes gc-trophy { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(7deg) scale(1.05) } 100% { transform: rotate(3deg) scale(1) } }
@keyframes gc-mote { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.6 } 33% { transform: translateY(-30px) translateX(20px) scale(1.2); opacity:.9 } 66% { transform: translateY(10px) translateX(-10px) scale(.8); opacity:.5 } 100% { transform: translateY(0) translateX(0) scale(1); opacity:.6 } }

.scn-daulat-ras-character {
  background:
    linear-gradient(180deg, #f0e6d0 0%, #dcc8a8 40%, #c8b090 100%),
    radial-gradient(ellipse at 40% 50%, #fff8e8 0%, #dcc8a8 60%, transparent 80%);
}
.scn-daulat-ras-character .wall { position:absolute; inset:0 0 10% 0; background: linear-gradient(135deg, #dcc8a8 0%, #f0e6d0 50%, #dcc8a8 100%); }
.scn-daulat-ras-character .window-frame { position:absolute; top:5%; left:15%; width:100px; height:140px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:4px; box-shadow: inset 0 0 15px rgba(0,0,0,.3); transform: perspective(600px) rotateY(5deg); }
.scn-daulat-ras-character .window-light { position:absolute; top:8%; left:18%; width:70px; height:100px; background: linear-gradient(180deg, #fff8e0 0%, #f0d8b0 100%); border-radius:2px; box-shadow: 0 0 30px 15px rgba(255,248,224,.5); animation: dr-light 8s ease-in-out infinite alternate; }
.scn-daulat-ras-character .desk { position:absolute; bottom:8%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #9a8060 0%, #7a6040 100%); border-radius:6px 6px 0 0; box-shadow: 0 -6px 15px rgba(0,0,0,.2); }
.scn-daulat-ras-character .open-book { position:absolute; bottom:20%; left:30%; width:100px; height:30px; background: linear-gradient(180deg, #f0ede8 0%, #e0d8d0 100%); border-radius:2px; box-shadow: 0 3px 6px rgba(0,0,0,.3); transform: perspective(300px) rotateX(5deg); animation: dr-book 12s ease-in-out infinite; }
.scn-daulat-ras-character .figure-profile { position:absolute; bottom:15%; left:45%; width:60px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%; box-shadow: 0 0 15px rgba(0,0,0,.4); transform-origin: bottom center; animation: dr-figure 6s ease-in-out infinite; }
.scn-daulat-ras-character .teacup { position:absolute; bottom:22%; left:25%; width:20px; height:16px; background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform: rotate(-5deg); animation: dr-teacup 5s ease-in-out infinite; }
.scn-daulat-ras-character .shadow { position:absolute; bottom:0; left:30%; right:20%; height:8%; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, transparent 100%); border-radius: 50% / 100% 100% 0 0; animation: dr-shadow 6s ease-in-out infinite; }
@keyframes dr-light { 0% { opacity:.85; transform: scale(1) } 50% { opacity:1; transform: scale(1.03) } 100% { opacity:.9; transform: scale(.97) } }
@keyframes dr-book { 0% { transform: perspective(300px) rotateX(5deg) } 50% { transform: perspective(300px) rotateX(7deg) translateY(-1px) } 100% { transform: perspective(300px) rotateX(5deg) } }
@keyframes dr-figure { 0% { transform: translateY(0) rotate(0deg) } 40% { transform: translateY(-2px) rotate(1deg) } 80% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dr-teacup { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes dr-shadow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.6 } }

.scn-mclaren-character {
  background:
    linear-gradient(180deg, #c8b8a0 0%, #a08870 40%, #806850 100%),
    radial-gradient(ellipse at 50% 60%, #f0d8b0 0%, #a08870 70%, transparent 90%);
}
.scn-mclaren-character .wall-dark { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #908070 0%, #706050 100%); }
.scn-mclaren-character .table { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius:8px; box-shadow: 0 -8px 30px rgba(0,0,0,.5); }
.scn-mclaren-character .lamp-glow { position:absolute; bottom:40%; left:50%; width:120px; height:150px; transform: translateX(-50%); background: radial-gradient(ellipse, #ffd880 0%, #f0b050 30%, #c08020 60%, transparent 80%); border-radius:50%; mix-blend-mode: screen; animation: mc-lamp-glow 4s ease-in-out infinite alternate; }
.scn-mclaren-character .lamp-base { position:absolute; bottom:38%; left:50%; width:30px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #b09070 0%, #807060 100%); border-radius: 10% 10% 40% 40% / 10% 10% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-mclaren-character .cards { position:absolute; width:24px; height:34px; background: linear-gradient(180deg, #f0ede8 0%, #e0d8d0 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform-origin: bottom center; }
.scn-mclaren-character .card-1 { bottom:18%; left:35%; transform: rotate(-15deg); animation: mc-card1 6s ease-in-out infinite; }
.scn-mclaren-character .card-2 { bottom:18%; left:43%; transform: rotate(5deg); animation: mc-card2 8s ease-in-out infinite; }
.scn-mclaren-character .card-3 { bottom:18%; left:51%; transform: rotate(20deg); animation: mc-card3 7s ease-in-out infinite; }
.scn-mclaren-character .figure-hunched { position:absolute; bottom:15%; left:47%; width:80px; height:100px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 30px rgba(0,0,0,.7); transform-origin: bottom center; animation: mc-figure 5s ease-in-out infinite; }
.scn-mclaren-character .shadow-long { position:absolute; bottom:0; left:35%; right:15%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); border-radius: 40% / 100% 100% 0 0; animation: mc-shadow 5s ease-in-out infinite; }
@keyframes mc-lamp-glow { 0% { opacity:.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:.8; transform: translateX(-50%) scale(.95) } }
@keyframes mc-card1 { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes mc-card2 { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes mc-card3 { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-4px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes mc-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 30% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 70% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes mc-shadow { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-bannister-appearance {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 40%, #c8b8a0 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e8 0%, #e0d0b8 70%, transparent 90%);
}
.scn-bannister-appearance .wall-pale { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #e8e0d0 0%, #d8c8b8 100%); }
.scn-bannister-appearance .window-frame { position:absolute; top:5%; right:10%; width:80px; height:120px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:4px; box-shadow: inset 0 0 15px rgba(0,0,0,.2); }
.scn-bannister-appearance .window-light { position:absolute; top:8%; right:13%; width:56px; height:84px; background: linear-gradient(180deg, #fff8e8 0%, #f0e0c0 100%); border-radius:2px; box-shadow: 0 0 25px 10px rgba(255,248,232,.4); animation: ba-light 7s ease-in-out infinite alternate; }
.scn-bannister-appearance .chair { position:absolute; bottom:15%; left:20%; width:50px; height:60px; background: linear-gradient(180deg, #705040 0%, #503020 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-bannister-appearance .figure-standing { position:absolute; bottom:12%; left:50%; width:70px; height:120px; transform: translateX(-50%); background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 20px rgba(0,0,0,.4); transform-origin: bottom center; animation: ba-figure 4s ease-in-out infinite; }
.scn-bannister-appearance .hands { position:absolute; bottom:20%; left:46%; width:40px; height:20px; background: linear-gradient(180deg, #d8c8b0 0%, #c8b8a0 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: ba-hands 3s ease-in-out infinite; }
.scn-bannister-appearance .face-area { position:absolute; bottom:50%; left:48%; width:30px; height:40px; background: linear-gradient(180deg, #e8d8c8 0%, #d8c8b8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(0,0,0,.1); animation: ba-face 5s ease-in-out infinite; }
.scn-bannister-appearance .shadow-anxious { position:absolute; bottom:0; left:30%; right:30%; height:12%; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 100%); border-radius: 50% / 100% 100% 0 0; animation: ba-shadow 4s ease-in-out infinite; }
@keyframes ba-light { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ba-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes ba-hands { 0% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(-3px) scale(1.05); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:.8 } }
@keyframes ba-face { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ba-shadow { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.5 } }

/* observing-wilder-cycling */
.scn-observing-wilder-cycling {
  background:
    linear-gradient(180deg, #4a3a5e 0%, #6a5a7e 40%, #b09070 100%),
    radial-gradient(ellipse at 30% 100%, #d0b895 0%, transparent 60%);
}
.scn-observing-wilder-cycling .sky-dusk {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #5c4a6e 0%, #8a7a9a 60%, #b09878 100%);
  animation: owc-sky 14s ease-in-out infinite alternate;
}
.scn-observing-wilder-cycling .hills-bg {
  position:absolute; bottom:35%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 50% 20% 0 0 / 80% 40% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,.3);
  animation: owc-hills 20s ease-in-out infinite alternate;
}
.scn-observing-wilder-cycling .hills-fg {
  position:absolute; bottom:28%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 70% 90% 0 0;
  box-shadow: inset 0 5px 12px rgba(0,0,0,.4);
  animation: owc-hills 24s ease-in-out infinite alternate-reverse;
}
.scn-observing-wilder-cycling .boulder-1 {
  position:absolute; bottom:32%; left:20%; width:40px; height:30px;
  background: linear-gradient(135deg, #7a7a7a 0%, #4a4a4a 100%);
  border-radius: 40% 60% 50% 50% / 50% 40% 60% 50%;
  box-shadow: 3px 3px 8px rgba(0,0,0,.4);
  animation: owc-boulder 6s ease-in-out infinite;
}
.scn-observing-wilder-cycling .boulder-2 {
  position:absolute; bottom:34%; left:60%; width:35px; height:25px;
  background: linear-gradient(135deg, #6a6a6a 0%, #3a3a3a 100%);
  border-radius: 60% 40% 50% 50% / 40% 50% 50% 60%;
  box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  animation: owc-boulder 8s ease-in-out infinite 1s;
}
.scn-observing-wilder-cycling .cyclist {
  position:absolute; bottom:30%; left:30%; width:20px; height:32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: owc-cycle 3s linear infinite;
}
.scn-observing-wilder-cycling .road-strip {
  position:absolute; bottom:25%; left:0; right:0; height:4px;
  background: linear-gradient(90deg, transparent 0%, #6a5a4a 20%, #8a7a6a 50%, #6a5a4a 80%, transparent 100%);
  opacity:.6;
  animation: owc-road 4s ease-in-out infinite alternate;
}
@keyframes owc-sky {
  0% { opacity:.9; }
  50% { opacity:1; }
  100% { opacity:.8; }
}
@keyframes owc-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes owc-boulder {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes owc-cycle {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(24px) rotate(1deg); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes owc-road {
  0% { opacity:.4; transform: scaleY(1); }
  50% { opacity:.7; transform: scaleY(1.3); }
  100% { opacity:.5; transform: scaleY(1); }
}

/* watching-fighting-cock */
.scn-watching-fighting-cock {
  background:
    linear-gradient(180deg, #4a3a5e 0%, #6a5a7e 50%, #8a7a6a 100%),
    radial-gradient(ellipse at 50% 100%, #9a8a7a 0%, transparent 70%);
}
.scn-watching-fighting-cock .sky-dusk {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #5c4a6e 0%, #8a7a9a 70%, #b09878 100%);
  animation: wfc-sky 12s ease-in-out infinite alternate;
}
.scn-watching-fighting-cock .inn-wall {
  position:absolute; bottom:20%; left:30%; width:40%; height:40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: wfc-wall 8s ease-in-out infinite alternate;
}
.scn-watching-fighting-cock .inn-door {
  position:absolute; bottom:20%; left:45%; width:15%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
  animation: wfc-door 4s ease-in-out infinite;
}
.scn-watching-fighting-cock .inn-window {
  position:absolute; bottom:38%; left:40%; width:10%; height:12%;
  background: radial-gradient(circle, #d0a060 0%, #a08040 70%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 8px rgba(208,160,96,.5);
  animation: wfc-window 5s ease-in-out infinite alternate;
}
.scn-watching-fighting-cock .bicycle {
  position:absolute; bottom:22%; left:35%; width:25px; height:20px;
  background: linear-gradient(135deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wfc-bike 3s ease-in-out infinite;
}
.scn-watching-fighting-cock .rock-left {
  position:absolute; bottom:18%; left:15%; width:50px; height:40px;
  background: linear-gradient(135deg, #6a6a6a 0%, #3a3a3a 100%);
  border-radius: 50% 40% 40% 60% / 60% 50% 50% 40%;
  box-shadow: 4px 4px 10px rgba(0,0,0,.4);
  animation: wfc-rock 8s ease-in-out infinite alternate;
}
.scn-watching-fighting-cock .rock-right {
  position:absolute; bottom:20%; right:15%; width:40px; height:30px;
  background: linear-gradient(135deg, #5a5a5a 0%, #2a2a2a 100%);
  border-radius: 40% 60% 50% 50% / 40% 50% 60% 50%;
  box-shadow: 3px 3px 8px rgba(0,0,0,.4);
  animation: wfc-rock 10s ease-in-out infinite alternate 2s;
}
@keyframes wfc-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes wfc-wall { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(1px)} }
@keyframes wfc-door { 0%,100%{transform:rotate(0deg)} 50%{transform:rotate(2deg)} }
@keyframes wfc-window { 0%{opacity:.7;box-shadow:0 0 15px 5px rgba(208,160,96,.4)} 50%{opacity:1;box-shadow:0 0 25px 10px rgba(208,160,96,.6)} 100%{opacity:.8;box-shadow:0 0 20px 6px rgba(208,160,96,.5)} }
@keyframes wfc-bike { 0%,100%{transform:rotate(0deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-1px)} }
@keyframes wfc-rock { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(1px) rotate(-1deg)} }

/* wilder-at-inn */
.scn-wilder-at-inn {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 60%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 60%);
}
.scn-wilder-at-inn .night-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  animation: wai-sky 15s ease-in-out infinite alternate;
}
.scn-wilder-at-inn .inn-wall-dark {
  position:absolute; bottom:15%; left:30%; width:40%; height:45%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: wai-wall 6s ease-in-out infinite;
}
.scn-wilder-at-inn .window-light {
  position:absolute; bottom:45%; left:42%; width:12%; height:15%;
  background: radial-gradient(circle, #ff8833 0%, #cc5500 60%, #441100 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 0 30px 15px rgba(255,136,51,.6), 0 0 60px 25px rgba(204,85,0,.3);
  animation: wai-light 2s ease-in-out infinite alternate;
}
.scn-wilder-at-inn .inn-door-dark {
  position:absolute; bottom:15%; left:45%; width:12%; height:35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: inset 0 3px 6px rgba(0,0,0,.7);
  animation: wai-door 5s ease-in-out infinite;
}
.scn-wilder-at-inn .figure-secretary {
  position:absolute; bottom:20%; left:43%; width:16px; height:40px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wai-sec 4s ease-in-out infinite;
}
.scn-wilder-at-inn .figure-approaching {
  position:absolute; bottom:18%; left:60%; width:14px; height:36px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wai-app 6s linear infinite;
}
.scn-wilder-at-inn .ground-shadow {
  position:absolute; bottom:12%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  animation: wai-ground 10s ease-in-out infinite alternate;
}
@keyframes wai-sky { 0%{opacity:.8} 50%{opacity:.9} 100%{opacity:.7} }
@keyframes wai-wall { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(1px)} }
@keyframes wai-light { 0%{opacity:.6;transform:scale(1)} 50%{opacity:1;transform:scale(1.05)} 100%{opacity:.7;transform:scale(.98)} }
@keyframes wai-door { 0%,100%{transform:rotate(0deg)} 50%{transform:rotate(1.5deg)} }
@keyframes wai-sec { 0%{transform:translateY(0) rotate(0deg)} 30%{transform:translateY(-1px) rotate(2deg)} 60%{transform:translateY(0) rotate(-1deg)} 100%{transform:translateY(-1px) rotate(0deg)} }
@keyframes wai-app { 0%{transform:translateX(0)} 25%{transform:translateX(-5px)} 50%{transform:translateX(-10px)} 75%{transform:translateX(-15px)} 100%{transform:translateX(-20px)} }
@keyframes wai-ground { 0%{opacity:.3} 50%{opacity:.5} 100%{opacity:.4} }

/* peeping-through-window */
.scn-peeping-through-window {
  background:
    linear-gradient(180deg, #05050f 0%, #0f0f2a 50%, #1a0f0f 100%),
    radial-gradient(ellipse at 40% 90%, #2a1a0a 0%, transparent 70%);
}
.scn-peeping-through-window .night-sky-peep {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #05050f 0%, #0f0f1a 100%);
  animation: ptw-sky 20s ease-in-out infinite alternate;
}
.scn-peeping-through-window .inn-wall-peep {
  position:absolute; bottom:15%; left:30%; width:40%; height:50%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 3px 10px rgba(0,0,0,.6);
  animation: ptw-wall 7s ease-in-out infinite;
}
.scn-peeping-through-window .window-lit-peep {
  position:absolute; bottom:45%; left:42%; width:12%; height:16%;
  background: radial-gradient(circle, #ffaa44 0%, #cc6600 50%, #331100 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 0 25px 10px rgba(255,170,68,.5), 0 0 50px 20px rgba(204,102,0,.3);
  animation: ptw-light 1.5s ease-in-out infinite alternate;
}
.scn-peeping-through-window .inn-door-peep {
  position:absolute; bottom:15%; left:45%; width:12%; height:35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: inset 0 3px 6px rgba(0,0,0,.7);
  animation: ptw-door 5s ease-in-out infinite;
}
.scn-peeping-through-window .bicycle-peep {
  position:absolute; bottom:20%; left:35%; width:22px; height:18px;
  background: linear-gradient(135deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ptw-bike 3s ease-in-out infinite;
}
.scn-peeping-through-window .match-glow {
  position:absolute; bottom:25%; left:48%; width:8px; height:8px;
  background: radial-gradient(circle, #ffcc44 0%, #ff8800 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 6px #ff8800, 0 0 30px 12px rgba(255,136,0,.4);
  animation: ptw-match 2s ease-in-out infinite alternate;
}
.scn-peeping-through-window .figure-holmes {
  position:absolute; bottom:22%; left:40%; width:15px; height:38px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ptw-holmes 4s ease-in-out infinite;
}
@keyframes ptw-sky { 0%{opacity:.7} 50%{opacity:.9} 100%{opacity:.8} }
@keyframes ptw-wall { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(1px)} }
@keyframes ptw-light { 0%{opacity:.5;transform:scale(1)} 50%{opacity:1;transform:scale(1.06)} 100%{opacity:.6;transform:scale(.97)} }
@keyframes ptw-door { 0%,100%{transform:rotate(0deg)} 50%{transform:rotate(1.5deg)} }
@keyframes ptw-bike { 0%,100%{transform:rotate(0deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-1px)} }
@keyframes ptw-match { 0%{opacity:.4;transform:scale(.8)} 50%{opacity:1;transform:scale(1.2)} 100%{opacity:.6;transform:scale(.9)} }
@keyframes ptw-holmes { 0%{transform:translateY(0) rotate(0deg)} 30%{transform:translateY(-1px) rotate(1deg)} 60%{transform:translateY(0) rotate(-1deg)} 100%{transform:translateY(-1px) rotate(0deg)} }

.scn-copying-time-estimate {
  background: linear-gradient(180deg, #f5e6c8 0%, #dcc8a0 60%, #b8a080 100%),
              radial-gradient(ellipse at 40% 20%, #fff8e0 0%, transparent 60%);
}
.scn-copying-time-estimate .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b490 100%);
  animation: cte-wall 12s ease-in-out infinite alternate;
}
.scn-copying-time-estimate .window {
  position: absolute; top: 8%; left: 15%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #f0e8d8 0%, #d4c4a8 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  border: 4px solid #8a7a5a; animation: cte-window 8s ease-in-out infinite;
}
.scn-copying-time-estimate .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.2);
  animation: cte-desk 20s ease-in-out infinite;
}
.scn-copying-time-estimate .paper-strip {
  position: absolute; bottom: 28%; height: 6%; background: #fcf4e0;
  border-radius: 1px; box-shadow: 1px 2px 4px rgba(0,0,0,0.1);
}
.scn-copying-time-estimate .paper1 {
  left: 18%; width: 14%; transform: rotate(-2deg);
  animation: cte-paper 8s ease-in-out infinite;
}
.scn-copying-time-estimate .paper2 {
  left: 36%; width: 16%; transform: rotate(3deg); animation: cte-paper 9s ease-in-out infinite; animation-delay: -3s;
}
.scn-copying-time-estimate .paper3 {
  left: 56%; width: 12%; transform: rotate(-1deg); animation: cte-paper 10s ease-in-out infinite; animation-delay: -6s;
}
.scn-copying-time-estimate .hand-pencil {
  position: absolute; bottom: 26%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 50%, #a07030 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(15deg); animation: cte-hand 5s ease-in-out infinite;
}
.scn-copying-time-estimate .clock {
  position: absolute; top: 12%; right: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0e0c0 0%, #c8b490 60%, #8a7a5a 100%);
  border-radius: 50%; border: 3px solid #6a5a3a; animation: cte-clock 15s linear infinite;
}
.scn-copying-time-estimate .lamp-glow {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 40% 30%, rgba(255,240,180,0.4) 0%, transparent 70%);
  animation: cte-lamp 12s ease-in-out infinite alternate;
}
@keyframes cte-wall { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes cte-window { 0%,100% { transform: scale(1); opacity:0.95 } 50% { transform: scale(1.02); opacity:1 } }
@keyframes cte-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes cte-paper { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(0deg) } }
@keyframes cte-hand { 0%,100% { transform: rotate(15deg) translate(0,0) } 50% { transform: rotate(18deg) translate(2px,-1px) } }
@keyframes cte-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes cte-lamp { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-no-footsteps-heard {
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 50%, #b8a080 100%),
              radial-gradient(ellipse at 60% 40%, #fff4e0 0%, transparent 60%);
}
.scn-no-footsteps-heard .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #edded0 0%, #d4c4b0 100%);
  animation: nfh-wall 15s ease-in-out infinite alternate;
}
.scn-no-footsteps-heard .desk-front {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,0.15);
  animation: nfh-desk 25s ease-in-out infinite;
}
.scn-no-footsteps-heard .pencil-break {
  position: absolute; bottom: 25%; left: 45%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 100%);
  border-radius: 2px 2px 0 0; transform: rotate(-10deg);
  animation: nfh-break 6s ease-in-out infinite;
}
.scn-no-footsteps-heard .hand-write {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c89460 0%, #b07840 60%, #a06830 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  transform: rotate(20deg); animation: nfh-write 4s ease-in-out infinite;
}
.scn-no-footsteps-heard .paper-scroll {
  position: absolute; bottom: 22%; left: 30%; width: 35%; height: 10%;
  background: linear-gradient(180deg, #fcf4e0 0%, #e8dcc8 100%);
  border-radius: 4px; transform: rotate(2deg);
  animation: nfh-paper 9s ease-in-out infinite;
}
.scn-no-footsteps-heard .inkpot {
  position: absolute; bottom: 20%; left: 70%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: nfh-ink 12s ease-in-out infinite;
}
.scn-no-footsteps-heard .candle-glow {
  position: absolute; top: 20%; right: 12%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #ffa030 80%, transparent 100%);
  border-radius: 10% 10% 40% 40%; box-shadow: 0 0 30px rgba(255,160,48,0.5);
  animation: nfh-candle 3s ease-in-out infinite alternate;
}
.scn-no-footsteps-heard .shadow-figure {
  position: absolute; bottom: 30%; left: 8%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  opacity:0.15; animation: nfh-shadow 20s ease-in-out infinite;
}
@keyframes nfh-wall { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes nfh-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(3px) } }
@keyframes nfh-break { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-18deg) translateY(2px) } }
@keyframes nfh-write { 0%,100% { transform: rotate(20deg) translate(0,0) } 50% { transform: rotate(25deg) translate(4px,-2px) } }
@keyframes nfh-paper { 0%,100% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-3px) } }
@keyframes nfh-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes nfh-candle { 0% { opacity:0.8; box-shadow: 0 0 20px rgba(255,160,48,0.3) } 100% { opacity:1; box-shadow: 0 0 40px rgba(255,160,48,0.7) } }
@keyframes nfh-shadow { 0%,100% { opacity:0.1 } 50% { opacity:0.2 } }

.scn-pencil-clue {
  background: linear-gradient(180deg, #efe0c8 0%, #d0c0a0 60%, #b09878 100%),
              radial-gradient(ellipse at 50% 40%, #fffce8 0%, transparent 70%);
}
.scn-pencil-clue .study-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e2d0b8 0%, #c8b490 100%);
  animation: pnc-wall 18s ease-in-out infinite alternate;
}
.scn-pencil-clue .table-shelf {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,0.1);
  animation: pnc-shelf 22s ease-in-out infinite;
}
.scn-pencil-clue .pencil-long {
  position: absolute; bottom: 20%; left: 30%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #705020 0%, #f0d080 30%, #f0d080 70%, #705020 100%);
  border-radius: 2px 2px 0 0; transform: rotate(5deg);
  animation: pnc-pencil 8s ease-in-out infinite;
}
.scn-pencil-clue .knife-blunt {
  position: absolute; bottom: 22%; left: 50%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 2px 2px 10px 10px; transform: rotate(-8deg);
  animation: pnc-knife 12s ease-in-out infinite;
}
.scn-pencil-clue .paper-examine {
  position: absolute; bottom: 16%; left: 20%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #fcf4e0 0%, #e8dcc8 100%);
  border-radius: 3px; transform: rotate(1deg);
  animation: pnc-paper 14s ease-in-out infinite;
}
.scn-pencil-clue .magnifier {
  position: absolute; bottom: 25%; left: 60%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f8f0e0 0%, #c8b8a0 60%, #8a7a5a 100%);
  border-radius: 50%; border: 3px solid #6a5a3a;
  animation: pnc-magnify 20s ease-in-out infinite;
}
.scn-pencil-clue .hand-examining {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #c89460 0%, #b07840 100%);
  border-radius: 40% 30% 20% 30% / 50% 40% 30% 40%;
  transform: rotate(10deg); animation: pnc-hand 7s ease-in-out infinite;
}
.scn-pencil-clue .lamp-halo {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: radial-gradient(ellipse at 40% 20%, rgba(255,235,180,0.3) 0%, transparent 65%);
  animation: pnc-lamp 25s ease-in-out infinite alternate;
}
@keyframes pnc-wall { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes pnc-shelf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes pnc-pencil { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } }
@keyframes pnc-knife { 0%,100% { transform: rotate(-8deg) } 50% { transform: rotate(-10deg) } }
@keyframes pnc-paper { 0%,100% { transform: rotate(1deg) } 50% { transform: rotate(3deg) } }
@keyframes pnc-magnify { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }
@keyframes pnc-hand { 0%,100% { transform: rotate(10deg) translate(0,0) } 50% { transform: rotate(14deg) translate(3px,-1px) } }
@keyframes pnc-lamp { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-johann-faber-deduction {
  background: linear-gradient(180deg, #f0e4d0 0%, #d8c8b0 50%, #c0a880 100%),
              radial-gradient(ellipse at 30% 30%, #fff8e8 0%, transparent 50%);
}
.scn-johann-faber-deduction .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ede2d0 0%, #d4c4a8 100%);
  animation: jfd-room 14s ease-in-out infinite alternate;
}
.scn-johann-faber-deduction .desk-top {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.12);
  animation: jfd-desk 20s ease-in-out infinite;
}
.scn-johann-faber-deduction .wood {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 4px;
  background: linear-gradient(180deg, #a08060 0%, #8a6a4a 100%);
  border-radius: 2px; animation: jfd-wood 30s ease-in-out infinite;
}
.scn-johann-faber-deduction .pencil-faber {
  position: absolute; bottom: 20%; left: 40%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #705020 0%, #f0d080 20%, #f0d080 60%, #705020 80%, #a08050 100%);
  border-radius: 2px 2px 0 0; transform: rotate(3deg);
  animation: jfd-faber 10s ease-in-out infinite;
}
.scn-johann-faber-deduction .paper-label {
  position: absolute; bottom: 14%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #fcf4e0 0%, #e8dcc8 100%);
  border-radius: 2px; transform: rotate(-1deg);
  animation: jfd-paper 9s ease-in-out infinite;
}
.scn-johann-faber-deduction .hand-holding {
  position: absolute; bottom: 26%; left: 48%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #c89460 0%, #b07840 100%);
  border-radius: 30% 40% 30% 40% / 50% 40% 40% 50%;
  transform: rotate(-5deg); animation: jfd-hand 6s ease-in-out infinite;
}
.scn-johann-faber-deduction .magnifier-glass {
  position: absolute; bottom: 24%; left: 55%; width: 18px; height: 18px;
  background: radial-gradient(circle, #f8f0e0 0%, #d0c0a0 60%, #8a7a5a 100%);
  border-radius: 50%; border: 2px solid #6a5a3a;
  animation: jfd-glass 15s ease-in-out infinite;
}
.scn-johann-faber-deduction .shadow-deduction {
  position: absolute; bottom: 28%; left: 5%; width: 15px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 40% 30% 30% / 50% 40% 40% 50%;
  opacity:0.1; animation: jfd-shadow 18s ease-in-out infinite;
}
@keyframes jfd-room { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes jfd-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes jfd-wood { 0%,100% { opacity:0.5 } 50% { opacity:0.7 } }
@keyframes jfd-faber { 0%,100% { transform: rotate(3deg) } 50% { transform: rotate(6deg) } }
@keyframes jfd-paper { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(0deg) translateY(-1px) } }
@keyframes jfd-hand { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-8deg) } }
@keyframes jfd-glass { 0%,100% { transform: scale(1) } 50% { transform: scale(1.03) } }
@keyframes jfd-shadow { 0%,100% { opacity:0.08 } 50% { opacity:0.15 } }

.scn-blotting-pad-impression {
  background: linear-gradient(135deg, #f0e6d3 0%, #d9cdb8 50%, #bfb09a 100%),
              radial-gradient(circle at 60% 30%, #fdf6ee 0%, transparent 60%);
}
.scn-blotting-pad-impression .desk {
  position: absolute; inset: 10% 5% 10% 5%;
  background: linear-gradient(135deg, #c8b89e 0%, #a89880 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: bpi-desk 15s ease-in-out infinite;
}
.scn-blotting-pad-impression .pad {
  position: absolute; top: 30%; left: 40%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #ddd0b8 0%, #b8a88a 100%);
  border-radius: 6px;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bpi-pad 8s ease-in-out infinite alternate;
}
.scn-blotting-pad-impression .paper {
  position: absolute; top: 28%; left: 42%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #fcf9f0 0%, #efe5d0 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: bpi-paper 6s ease-in-out infinite;
}
.scn-blotting-pad-impression .ink {
  position: absolute; top: 35%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #2a3a5a 0%, #1a2a4a 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(42,58,90,0.3);
  animation: bpi-ink 4s ease-in-out infinite alternate;
}
.scn-blotting-pad-impression .pen {
  position: absolute; top: 45%; left: 32%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 50%, #8a7a6a 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: 80% center;
  animation: bpi-pen 3s ease-in-out infinite;
}
.scn-blotting-pad-impression .shadow-lamp {
  position: absolute; top: 10%; left: 60%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at center, rgba(255,220,180,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: bpi-lamp 20s ease-in-out infinite alternate;
}
@keyframes bpi-desk { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes bpi-pad { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes bpi-paper { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes bpi-ink { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.2) } 100% { opacity: 0.5; transform: scale(1) } }
@keyframes bpi-pen { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(2px) } 100% { transform: rotate(-20deg) translateX(0) } }
@keyframes bpi-lamp { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.4 } }

.scn-blotting-pad-reversal {
  background: linear-gradient(180deg, #f2e8d8 0%, #d6c8b0 50%, #b8a690 100%),
              radial-gradient(ellipse at 50% 40%, #fff8e8 0%, transparent 60%);
}
.scn-blotting-pad-reversal .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e6dcc8 0%, #c8b8a0 100%);
  animation: bpr-wall 12s ease-in-out infinite;
}
.scn-blotting-pad-reversal .light-beam {
  position: absolute; top: 20%; left: 30%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,250,230,0.5) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  filter: blur(6px);
  animation: bpr-light 8s ease-in-out infinite alternate;
}
.scn-blotting-pad-reversal .paper-rev {
  position: absolute; top: 25%; left: 40%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(255,245,210,0.9) 0%, rgba(220,200,160,0.7) 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 0 20px 10px rgba(255,230,180,0.3);
  animation: bpr-paper 3s ease-in-out infinite;
}
.scn-blotting-pad-reversal .hand-frame {
  position: absolute; top: 30%; left: 35%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(1px);
  opacity: 0.6;
  animation: bpr-hand 4s ease-in-out infinite alternate;
}
.scn-blotting-pad-reversal .shadow-hand {
  position: absolute; top: 28%; left: 38%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: bpr-shadow 4s ease-in-out infinite alternate;
}
.scn-blotting-pad-reversal .sparkle {
  position: absolute; top: 22%; left: 45%; width: 4px; height: 4px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(255,255,220,0.6);
  animation: bpr-sparkle 2s ease-in-out infinite;
}
@keyframes bpr-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes bpr-light { 0% { transform: scaleY(0.9) translateY(0) } 50% { transform: scaleY(1.05) translateY(-5px) } 100% { transform: scaleY(0.9) translateY(0) } }
@keyframes bpr-paper { 0% { transform: rotate(5deg) translateY(0); opacity: 0.7 } 50% { transform: rotate(3deg) translateY(-2px); opacity: 1 } 100% { transform: rotate(5deg) translateY(0); opacity: 0.8 } }
@keyframes bpr-hand { 0% { transform: translateX(0) rotate(0); opacity: 0.5 } 50% { transform: translateX(5px) rotate(3deg); opacity: 0.7 } 100% { transform: translateX(0) rotate(0); opacity: 0.6 } }
@keyframes bpr-shadow { 0% { transform: translateX(0); opacity: 0.2 } 50% { transform: translateX(-3px); opacity: 0.4 } 100% { transform: translateX(0); opacity: 0.25 } }
@keyframes bpr-sparkle { 0% { opacity: 0; transform: scale(1) } 50% { opacity: 1; transform: scale(2) } 100% { opacity: 0; transform: scale(1) } }

.scn-us-mark-you {
  background: linear-gradient(180deg, #e8ddd0 0%, #cfc0ae 50%, #b8a894 100%),
              radial-gradient(ellipse at 50% 30%, #f2ebe2 0%, transparent 60%);
}
.scn-us-mark-you .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d9ccba 0%, #bfae9a 100%);
  animation: umy-bg 20s ease-in-out infinite;
}
.scn-us-mark-you .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #705840 100%);
  border-radius: 20% 20% 6% 6% / 60% 60% 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: umy-table 12s ease-in-out infinite;
}
.scn-us-mark-you .figure-left {
  position: absolute; bottom: 25%; left: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: umy-figure-left 8s ease-in-out infinite;
}
.scn-us-mark-you .figure-right {
  position: absolute; bottom: 25%; right: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: umy-figure-right 8s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-us-mark-you .document {
  position: absolute; bottom: 35%; left: 45%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #fcf3e0 0%, #e0d0b8 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: umy-doc 15s ease-in-out infinite;
}
.scn-us-mark-you .pointers {
  position: absolute; bottom: 40%; left: 48%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: umy-point 4s ease-in-out infinite;
}
@keyframes umy-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes umy-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes umy-figure-left { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-3px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes umy-figure-right { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-4px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes umy-doc { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes umy-point { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(20deg) translateX(5px) } 100% { transform: rotate(15deg) translateX(0) } }

.scn-red-tape {
  background: linear-gradient(180deg, #e8dcc8 0%, #ccbca4 50%, #b8a48c 100%),
              radial-gradient(ellipse at 60% 40%, #f2e8d8 0%, transparent 60%);
}
.scn-red-tape .desk-rt {
  position: absolute; inset: 10% 5% 5% 5%;
  background: linear-gradient(135deg, #b8a488 0%, #9c8870 50%, #806c58 100%);
  border-radius: 12px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: rtp-desk 14s ease-in-out infinite;
}
.scn-red-tape .pile-papers {
  position: absolute; top: 40%; left: 55%; width: 70px; height: 30px;
  background: linear-gradient(180deg, #fcf5e8 0%, #e0d2bc 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: rtp-pile 10s ease-in-out infinite;
}
.scn-red-tape .pile-papers::before {
  content: '';
  position: absolute; top: -4px; left: 5%; width: 90%; height: 4px;
  background: #d8c8b0;
  border-radius: 1px;
  transform: rotate(-2deg);
}
.scn-red-tape .pile-papers::after {
  content: '';
  position: absolute; top: -8px; left: 10%; width: 80%; height: 4px;
  background: #d8c8b0;
  border-radius: 1px;
  transform: rotate(1deg);
}
.scn-red-tape .notebook {
  position: absolute; top: 30%; left: 30%; width: 80px; height: 110px;
  background: linear-gradient(180deg, #c0a88c 0%, #a08870 100%);
  border-radius: 4px;
  transform: rotate(8deg);
  box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
  animation: rtp-note 12s ease-in-out infinite;
}
.scn-red-tape .notebook::before {
  content: '';
  position: absolute; top: 8px; left: 10px; right: 10px; height: 60%;
  background: repeating-linear-gradient(0deg, #8a7a6a 0px, #8a7a6a 1px, transparent 1px, transparent 12px);
  opacity: 0.4;
}
.scn-red-tape .hand-rt {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 30% 80%;
  animation: rtp-hand 5s ease-in-out infinite;
}
.scn-red-tape .glass {
  position: absolute; top: 35%; left: 45%; width: 20px; height: 12px;
  background: radial-gradient(circle, #e0d4c0 0%, transparent 80%);
  border-radius: 50%;
  border: 2px solid #a0907a;
  filter: blur(1px);
  animation: rtp-glass 6s ease-in-out infinite;
}
.scn-red-tape .letter-fold {
  position: absolute; top: 25%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #fcf5e8 0%, #e8dcc8 100%);
  border-radius: 2px;
  transform: skewX(-10deg);
  box-shadow: 1px 2px 4px rgba(0,0,0,0.15);
  animation: rtp-letter 7s ease-in-out infinite alternate;
}
@keyframes rtp-desk { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes rtp-pile { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rtp-note { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-3px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes rtp-hand { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rtp-glass { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.1) } 100% { opacity: 0.6; transform: scale(1) } }
@keyframes rtp-letter { 0% { transform: skewX(-10deg) translateY(0) } 50% { transform: skewX(-8deg) translateY(-2px) } 100% { transform: skewX(-10deg) translateY(0) } }

.scn-holmes-paces-and-smokes {
  background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-holmes-paces-and-smokes .bg-wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); animation: hps1-wall 18s ease-in-out infinite alternate; }
.scn-holmes-paces-and-smokes .window { position: absolute; top: 10%; right: 10%; width: 40px; height: 60px; background: radial-gradient(ellipse at center, #806040 0%, #3a2a1a 60%, transparent 100%); border-radius: 4px; box-shadow: inset 0 0 20px #a07850; animation: hps1-win 8s ease-in-out infinite alternate; }
.scn-holmes-paces-and-smokes .professor-chair { position: absolute; bottom: 15%; left: 10%; width: 50px; height: 60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: hps1-chair 12s ease-in-out infinite; }
.scn-holmes-paces-and-smokes .holmes-figure { position: absolute; bottom: 18%; width: 30px; height: 70px; background: linear-gradient(180deg, #0d0806 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hps1-pace 6s ease-in-out infinite alternate; }
.scn-holmes-paces-and-smokes .cigarette-glow { position: absolute; top: 57%; left: 45%; width: 6px; height: 6px; background: #ffa050; border-radius: 50%; box-shadow: 0 0 12px 4px #ffa050; animation: hps1-glow 0.8s ease-in-out infinite alternate; }
.scn-holmes-paces-and-smokes .smoke-wisp { position: absolute; bottom: 0; width: 40px; height: 60px; background: radial-gradient(ellipse at center, rgba(180,140,100,0.3) 0%, transparent 100%); filter: blur(5px); }
.scn-holmes-paces-and-smokes .smoke-a { left: 20%; animation: hps1-smoke 8s ease-out infinite; }
.scn-holmes-paces-and-smokes .smoke-b { left: 50%; animation: hps1-smoke 6s ease-out infinite 2s; }
.scn-holmes-paces-and-smokes .shadow-cast { position: absolute; bottom: 10%; left: 20%; width: 80px; height: 20px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(8px); animation: hps1-shad 6s ease-in-out infinite alternate; }
@keyframes hps1-wall   { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes hps1-win    { 0% { opacity: 0.6; box-shadow: inset 0 0 10px #604030 } 50% { opacity: 1; box-shadow: inset 0 0 30px #a07850 } 100% { opacity: 0.7; box-shadow: inset 0 0 15px #806040 } }
@keyframes hps1-chair  { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes hps1-pace   { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(20px) rotate(0deg) } 50% { transform: translateX(40px) rotate(2deg) } 75% { transform: translateX(20px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes hps1-glow   { 0% { box-shadow: 0 0 8px 2px #ff8020; opacity: 0.7 } 50% { box-shadow: 0 0 20px 6px #ffa050; opacity: 1 } 100% { box-shadow: 0 0 10px 3px #ff8020; opacity: 0.8 } }
@keyframes hps1-smoke  { 0% { opacity: 0; transform: translateY(0) scale(1) } 30% { opacity: 0.6; transform: translateY(-30px) scale(1.5) } 60% { opacity: 0.3; transform: translateY(-60px) scale(2) } 100% { opacity: 0; transform: translateY(-100px) scale(3) } }
@keyframes hps1-shad   { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.2) translateX(10px) } 100% { transform: scaleX(0.9) translateX(-5px) } }

.scn-magnum-opus {
  background: linear-gradient(180deg, #2a1e18 0%, #0d0806 100%), radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-magnum-opus .bg-desk { position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-magnum-opus .manuscript-stack { position: absolute; bottom: 25%; left: 30%; width: 60px; height: 40px; background: linear-gradient(180deg, #d0b890 0%, #b09870 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,200,0.3); animation: mo2-paper 9s ease-in-out infinite; }
.scn-magnum-opus .lamp-base { position: absolute; bottom: 30%; right: 20%; width: 20px; height: 50px; background: linear-gradient(180deg, #604020 0%, #302010 100%); border-radius: 20% 20% 40% 40% / 10% 10% 30% 30%; }
.scn-magnum-opus .lamp-glow { position: absolute; bottom: 35%; right: 15%; width: 50px; height: 50px; background: radial-gradient(circle, #ffc870 0%, #806040 60%, transparent 100%); animation: mo2-glow 4s ease-in-out infinite alternate; }
.scn-magnum-opus .cigarette-ash { position: absolute; bottom: 28%; left: 25%; width: 8px; height: 18px; background: linear-gradient(180deg, #a08060 0%, #605040 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform: rotate(15deg); animation: mo2-ash 5s ease-in-out infinite; }
.scn-magnum-opus .hand-writing { position: absolute; bottom: 20%; left: 35%; width: 40px; height: 20px; background: transparent; border-radius: 50%; box-shadow: 0 -10px 0 6px #b09870, 0 10px 0 6px #a08868; animation: mo2-hand 6s ease-in-out infinite alternate; }
.scn-magnum-opus .shadow-arm { position: absolute; bottom: 15%; left: 20%; width: 100px; height: 30px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(12px); animation: mo2-arm 6s ease-in-out infinite alternate; }
@keyframes mo2-paper { 0% { transform: translateY(0) rotate(-1deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); } 50% { transform: translateY(-4px) rotate(1deg); box-shadow: 0 8px 16px rgba(0,0,0,0.7); } 100% { transform: translateY(0) rotate(-1deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); } }
@keyframes mo2-glow { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(0.95) } }
@keyframes mo2-ash { 0% { transform: rotate(15deg) translateY(0); opacity: 1 } 50% { transform: rotate(10deg) translateY(-5px); opacity: 0.7 } 100% { transform: rotate(15deg) translateY(0); opacity: 1 } }
@keyframes mo2-hand { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(0deg) translateX(5px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes mo2-arm { 0% { transform: translateX(0) } 50% { transform: translateX(15px) } 100% { transform: translateX(0) } }

.scn-question-about-dying-words {
  background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%), radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-question-about-dying-words .bg-room { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); }
.scn-question-about-dying-words .table { position: absolute; bottom: 20%; left: 25%; width: 100px; height: 30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; }
.scn-question-about-dying-words .candle-stick { position: absolute; bottom: 35%; left: 30%; width: 10px; height: 30px; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius: 20% 20% 10% 10%; }
.scn-question-about-dying-words .candle-flame { position: absolute; bottom: 62%; left: 30%; width: 14px; height: 20px; background: radial-gradient(ellipse at center, #ffd090 0%, #ffa060 40%, transparent 100%); animation: qdw3-flame 0.6s ease-in-out infinite alternate; }
.scn-question-about-dying-words .professor-silhouette { position: absolute; bottom: 15%; right: 20%; width: 40px; height: 70px; background: linear-gradient(180deg, #0d0806 0%, #050302 100%); border-radius: 60% 60% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: qdw3-talk 5s ease-in-out infinite alternate; }
.scn-question-about-dying-words .shadow-floor { position: absolute; bottom: 10%; left: 10%; width: 120px; height: 15px; background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(10px); }
.scn-question-about-dying-words .book-open { position: absolute; bottom: 22%; left: 38%; width: 40px; height: 30px; background: linear-gradient(180deg, #b09870 0%, #8a7050 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: qdw3-book 12s ease-in-out infinite; }
@keyframes qdw3-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.8 } 50% { transform: scaleY(1.2) translateY(-3px); opacity: 1 } 100% { transform: scaleY(0.9) translateY(1px); opacity: 0.7 } }
@keyframes qdw3-talk { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-3deg) } }
@keyframes qdw3-book { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-5deg) } }

.scn-suicide-theory {
  background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%), radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-suicide-theory .bg-wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); }
.scn-suicide-theory .window { position: absolute; top: 10%; left: 10%; width: 50px; height: 70px; background: radial-gradient(ellipse at center, #604030 0%, #2a1a10 60%, transparent 100%); border-radius: 4px; box-shadow: inset 0 0 20px #806040; animation: st4-win 12s ease-in-out infinite alternate; }
.scn-suicide-theory .chair { position: absolute; bottom: 20%; right: 15%; width: 40px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; }
.scn-suicide-theory .eyeglasses-shape { position: absolute; bottom: 35%; left: 45%; width: 30px; height: 10px; background: transparent; border-radius: 50%; box-shadow: -12px 0 0 4px #b09870, 12px 0 0 4px #b09870, 0 -10px 0 4px #806040; animation: st4-glasses 7s ease-in-out infinite; }
.scn-suicide-theory .figure-standing { position: absolute; bottom: 15%; left: 25%; width: 30px; height: 70px; background: linear-gradient(180deg, #0d0806 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st4-stand 10s ease-in-out infinite alternate; }
.scn-suicide-theory .figure-seated { position: absolute; bottom: 20%; right: 22%; width: 30px; height: 50px; background: linear-gradient(180deg, #0d0806 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: st4-seat 8s ease-in-out infinite alternate; }
.scn-suicide-theory .shadow-angled { position: absolute; bottom: 12%; left: 20%; width: 120px; height: 20px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(10px); transform: rotate(-10deg); animation: st4-shadow 9s ease-in-out infinite alternate; }
@keyframes st4-win { 0% { opacity: 0.5; box-shadow: inset 0 0 10px #604030 } 50% { opacity: 0.8; box-shadow: inset 0 0 25px #806040 } 100% { opacity: 0.6; box-shadow: inset 0 0 15px #604030 } }
@keyframes st4-glasses { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes st4-stand { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-2deg) } }
@keyframes st4-seat { 0% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(2deg) } }
@keyframes st4-shadow { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-5deg) scaleX(1.1) } 100% { transform: rotate(-10deg) scaleX(1) } }

.scn-holmes-resolves {
  background:
    radial-gradient(ellipse at 50% 80%, #8a3a1a 0%, #2a1a0a 60%, transparent 100%),
    linear-gradient(180deg, #0d0805 0%, #1a0f08 40%, #3a1a0a 100%);
}
.scn-holmes-resolves .fire-back {
  position: absolute; bottom: 12%; left: 15%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #d06020 0%, #8a3010 50%, #3a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  filter: blur(4px);
  animation: hr-fireback 3s ease-in-out infinite alternate;
}
.scn-holmes-resolves .fire-glow {
  position: absolute; bottom: 15%; left: 20%; width: 50%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 30%, transparent 70%);
  opacity: 0.5;
  animation: hr-fireglow 2s ease-in-out infinite alternate;
}
.scn-holmes-resolves .ember-a {
  position: absolute; bottom: 10%; left: 30%; width: 4px; height: 4px;
  background: #ffb060; border-radius: 50%;
  box-shadow: 0 0 8px 2px #ff8030;
  animation: hr-ember1 1.5s ease-in-out infinite alternate;
}
.scn-holmes-resolves .ember-b {
  bottom: 14%; left: 55%;
  animation: hr-ember2 1.2s ease-in-out infinite alternate;
}
.scn-holmes-resolves .chimney {
  position: absolute; bottom: 48%; left: 25%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 10% 10% 0 0;
  transform: perspective(200px) rotateX(5deg);
}
.scn-holmes-resolves .holmes-chair {
  position: absolute; bottom: 8%; left: 38%; width: 22%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -5px 10px #00000055;
}
.scn-holmes-resolves .holmes-figure {
  position: absolute; bottom: 10%; left: 42%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #0d0805 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hr-springup 4s ease-in-out infinite;
}
.scn-holmes-resolves .shadow-floor {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, #0d0805 0%, transparent 100%);
  opacity: 0.6;
}
.scn-holmes-resolves .shadow-wall {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, #0d0805 80%);
  opacity: 0.5;
  animation: hr-shadowpulse 3s ease-in-out infinite alternate;
}
@keyframes hr-fireback {
  0% { opacity: 0.6; transform: scaleX(1) scaleY(1); }
  50% { opacity: 1; transform: scaleX(1.02) scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleX(0.98) scaleY(1); }
}
@keyframes hr-fireglow {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes hr-ember1 {
  0% { transform: translate(0, 0) scale(1); opacity: 1; }
  50% { transform: translate(5px, -10px) scale(0.6); opacity: 0.7; }
  100% { transform: translate(2px, -4px) scale(0.8); opacity: 0.9; }
}
@keyframes hr-ember2 {
  0% { transform: translate(0, 0) scale(1); opacity: 1; }
  50% { transform: translate(-4px, -12px) scale(0.5); opacity: 0.6; }
  100% { transform: translate(1px, -3px) scale(0.9); opacity: 0.9; }
}
@keyframes hr-springup {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(0) rotate(-2deg); }
  70% { transform: translateY(-5px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hr-shadowpulse {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

.scn-holmes-engaged {
  background:
    radial-gradient(ellipse at 50% 120%, #6a6a7a 0%, #3a3a4a 50%, #1a1a2a 100%),
    linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #0a0a1a 100%);
}
.scn-holmes-engaged .house-front {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px #0a0a1a;
}
.scn-holmes-engaged .door {
  position: absolute; bottom: 15%; left: 40%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 6px #000;
  animation: he-doorcreak 10s ease-in-out infinite;
}
.scn-holmes-engaged .rain-streak {
  position: absolute; top: 0; width: 2px; height: 100%;
  background: linear-gradient(180deg, rgba(180,180,200,0.5) 0%, transparent 100%);
  filter: blur(1px);
}
.scn-holmes-engaged .rain-a { left: 25%; animation: he-rain1 0.8s linear infinite; }
.scn-holmes-engaged .rain-b { left: 55%; animation: he-rain2 0.6s linear infinite reverse; }
.scn-holmes-engaged .wind-sweep {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(90deg, transparent 0%, rgba(160,160,180,0.2) 20%, transparent 40%);
  filter: blur(8px);
  animation: he-wind 3s linear infinite;
}
.scn-holmes-engaged .holmes-disguise {
  position: absolute; bottom: 12%; left: 45%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: he-jitter 1s ease-in-out infinite;
}
.scn-holmes-engaged .holmes-disguise::before {
  content: '';
  position: absolute; top: -10%; left: 50%; width: 120%; height: 20%;
  background: #1a1a2a;
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 2px 4px #000;
}
.scn-holmes-engaged .umbrella {
  position: absolute; bottom: 30%; left: 40%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(15deg);
  animation: he-umbrella 4s ease-in-out infinite;
}
.scn-holmes-engaged .umbrella::before {
  content: '';
  position: absolute; top: -20%; left: -30%; width: 160%; height: 20%;
  background: radial-gradient(ellipse, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50%;
}
.scn-holmes-engaged .puddle {
  position: absolute; bottom: 5%; left: 35%; width: 30%; height: 6%;
  background: radial-gradient(ellipse, rgba(100,100,120,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: he-puddle 6s ease-in-out infinite alternate;
}
@keyframes he-doorcreak {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes he-rain1 {
  0% { transform: translateY(0); opacity: 1; }
  100% { transform: translateY(100%); opacity: 0.3; }
}
@keyframes he-rain2 {
  0% { transform: translateY(100%); opacity: 0.3; }
  100% { transform: translateY(0); opacity: 1; }
}
@keyframes he-wind {
  0% { transform: translateX(0); }
  50% { transform: translateX(30px); }
  100% { transform: translateX(0); }
}
@keyframes he-jitter {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes he-umbrella {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-5px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes he-puddle {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.4; }
  50% { transform: scaleX(1.1) scaleY(0.8); opacity: 0.5; }
  100% { transform: scaleX(0.95) scaleY(1.05); opacity: 0.3; }
}

.scn-holmes-plans-burglary {
  background:
    radial-gradient(ellipse at 50% 90%, #7a2a0a 0%, #2a1208 50%, #0a0602 100%),
    linear-gradient(180deg, #0a0602 0%, #1a0c04 40%, #3a1a08 100%);
}
.scn-holmes-plans-burglary .hearth-back {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 45%;
  background: radial-gradient(ellipse at 50% 60%, #8a3a1a 0%, #3a1a0a 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  filter: blur(6px);
  animation: hp-hearth 4s ease-in-out infinite alternate;
}
.scn-holmes-plans-burglary .fire-twist {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #ff8040 0%, #d05020 50%, transparent 100%);
  border-radius: 40% 60% 10% 10%;
  animation: hp-fire 1.5s ease-in-out infinite alternate;
}
.scn-holmes-plans-burglary .table-map {
  position: absolute; bottom: 8%; left: 28%; width: 44%; height: 18%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 -2px 6px #00000055;
}
.scn-holmes-plans-burglary .candle {
  position: absolute; bottom: 22%; left: 45%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e8c880 0%, #c8a060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #ffc080;
  animation: hp-candle 2s ease-in-out infinite alternate;
}
.scn-holmes-plans-burglary .candle::after {
  content: '';
  position: absolute; top: -20%; left: 50%; transform: translateX(-50%);
  width: 120%; height: 25%;
  background: radial-gradient(circle, #ffd060 0%, #ff8030 70%);
  border-radius: 50%;
}
.scn-holmes-plans-burglary .holmes-silhouette {
  position: absolute; bottom: 6%; left: 20%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #0a0602 0%, #0d0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hp-lean 6s ease-in-out infinite;
}
.scn-holmes-plans-burglary .watson-silhouette {
  position: absolute; bottom: 6%; right: 22%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #0a0602 0%, #0d0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hp-lean 6s ease-in-out infinite reverse;
}
.scn-holmes-plans-burglary .shadow-long {
  position: absolute; bottom: 0; left: 15%; width: 70%; height: 6%;
  background: linear-gradient(180deg, #0a0602 0%, transparent 100%);
  opacity: 0.7;
  animation: hp-shadow 5s ease-in-out infinite alternate;
}
@keyframes hp-hearth {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.08); }
  100% { opacity: 0.6; transform: scaleY(0.95); }
}
@keyframes hp-fire {
  0% { transform: scaleX(1) scaleY(1) rotate(0deg); }
  50% { transform: scaleX(1.05) scaleY(1.1) rotate(2deg); }
  100% { transform: scaleX(0.97) scaleY(0.95) rotate(-1deg); }
}
@keyframes hp-candle {
  0% { box-shadow: 0 0 15px 5px #ffc080; opacity: 0.9; }
  50% { box-shadow: 0 0 30px 12px #ffd090; opacity: 1; }
  100% { box-shadow: 0 0 18px 6px #ffc080; opacity: 0.85; }
}
@keyframes hp-lean {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hp-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.05); }
  100% { opacity: 0.6; transform: scaleX(0.95); }
}

.scn-watson-insists-on-joining {
  background:
    radial-gradient(ellipse at 50% 80%, #6a2a0a 0%, #1a0c04 60%, transparent 100%),
    linear-gradient(180deg, #0d0805 0%, #2a1408 40%, #3a1a08 100%);
}
.scn-watson-insists-on-joining .mantle {
  position: absolute; bottom: 55%; left: 18%; width: 64%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 8px #00000055;
}
.scn-watson-insists-on-joining .fire-flicker {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 35%;
  background: radial-gradient(ellipse at 50% 80%, #ff7030 0%, #b04020 40%, transparent 100%);
  filter: blur(8px);
  animation: wj-fire 2.5s ease-in-out infinite alternate;
}
.scn-watson-insists-on-joining .clock {
  position: absolute; bottom: 62%; left: 60%; width: 8%; height: 10%;
  background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 4px #000;
}
.scn-watson-insists-on-joining .holmes-profile {
  position: absolute; bottom: 8%; left: 20%; width: 16%; height: 38%;
  background: linear-gradient(90deg, #0d0805 0%, #0a0602 100%);
  border-radius: 60% 30% 30% 60% / 60% 40% 40% 60%;
  transform-origin: bottom center;
  animation: wj-profile 8s ease-in-out infinite;
}
.scn-watson-insists-on-joining .watson-hand {
  position: absolute; bottom: 18%; right: 25%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #1a0c04 0%, #0d0805 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: wj-hand 3s ease-in-out infinite alternate;
}
.scn-watson-insists-on-joining .door-arch {
  position: absolute; bottom: 0; left: 70%; width: 20%; height: 100%;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a05 50%, #0d0805 100%);
  border-radius: 50% 0 0 0 / 100% 0 0 0;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  opacity: 0.9;
}
@keyframes wj-fire {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.1); }
  100% { opacity: 0.5; transform: scaleY(0.9); }
}
@keyframes wj-profile {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes wj-hand {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  50% { transform: translateY(-6px) rotate(10deg) scaleX(0.9); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}

.scn-holmes-directs-watson {
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 40%, #0d0808 100%),
              radial-gradient(ellipse at 40% 60%, #4a2a1a 0%, transparent 60%);
}
.scn-holmes-directs-watson .bg-interior {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1212 100%);
  animation: hdw-bg 12s ease-in-out infinite alternate;
}
.scn-holmes-directs-watson .window {
  position: absolute; top: 10%; left: 70%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%);
  border: 4px solid #2a1a1a; border-radius: 4px;
  box-shadow: inset 0 0 20px #1a1a2e;
  animation: hdw-window 15s ease-in-out infinite alternate;
}
.scn-holmes-directs-watson .desk {
  position: absolute; bottom: 20%; left: 10%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: hdw-desk 8s ease-in-out infinite;
}
.scn-holmes-directs-watson .holmes-silhouette {
  position: absolute; bottom: 22%; left: 20%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1212 0%, #0d0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hdw-holmes 6s ease-in-out infinite alternate;
}
.scn-holmes-directs-watson .watson-silhouette {
  position: absolute; bottom: 22%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1212 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: hdw-watson 7s ease-in-out infinite alternate;
}
.scn-holmes-directs-watson .lamp-glow {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #b06030 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #b06030, 0 0 60px 20px rgba(176,96,48,0.3);
  animation: hdw-lamp 4s ease-in-out infinite alternate;
}
.scn-holmes-directs-watson .candle-flicker {
  position: absolute; bottom: 32%; left: 38%; width: 4px; height: 12px;
  background: #ffd060;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 10px 3px #ffd060;
  animation: hdw-candle 2s ease-in-out infinite alternate;
}
@keyframes hdw-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hdw-window { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes hdw-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes hdw-holmes { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes hdw-watson { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes hdw-lamp { 0% { box-shadow: 0 0 20px 8px #b06030; opacity: 0.8; } 50% { box-shadow: 0 0 40px 15px #d08040; opacity: 1; } 100% { box-shadow: 0 0 25px 10px #b06030; opacity: 0.9; } }
@keyframes hdw-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }

/* Scene 2 */
.scn-narrative-epilogue {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 80%);
}
.scn-narrative-epilogue .bg-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  animation: nae-overcast 20s ease-in-out infinite alternate;
}
.scn-narrative-epilogue .window-frame {
  position: absolute; top: 5%; left: 65%; width: 100px; height: 130px;
  background: transparent;
  border: 6px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-narrative-epilogue .desk {
  position: absolute; bottom: 20%; left: 10%; width: 55%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: nae-desk 10s ease-in-out infinite;
}
.scn-narrative-epilogue .papers {
  position: absolute; bottom: 28%; left: 15%; width: 30px; height: 4px;
  background: #d0c8b0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3), 0 4px 0 #c8b8a0, 0 6px 0 #bfb090;
  animation: nae-papers 6s ease-in-out infinite alternate;
}
.scn-narrative-epilogue .inkwell {
  position: absolute; bottom: 26%; left: 35%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: nae-inkwell 8s ease-in-out infinite;
}
.scn-narrative-epilogue .chair {
  position: absolute; bottom: 20%; left: 5%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  animation: nae-chair 12s ease-in-out infinite alternate;
}
@keyframes nae-overcast { 0% { background-position: 0% 0%; } 50% { background-position: 50% 10%; } 100% { background-position: 100% 0%; } }
@keyframes nae-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes nae-papers { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes nae-inkwell { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes nae-chair { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }

/* Scene 3 */
.scn-epilogue-justice {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%);
}
.scn-epilogue-justice .sky-overcast {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  animation: ej-sky 25s ease-in-out infinite alternate;
}
.scn-epilogue-justice .courthouse {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ej-courthouse 15s ease-in-out infinite alternate;
}
.scn-epilogue-justice .columns {
  position: absolute; bottom: 35%; left: 28%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: ej-columns 12s ease-in-out infinite;
}
.scn-epilogue-justice .columns::before {
  content: '';
  position: absolute; left: 100%; width: 100%; height: 100%;
  background: inherit; border-radius: inherit;
  box-shadow: inherit;
  left: 400%; /* two more columns */
}
.scn-epilogue-justice .columns::after {
  content: '';
  position: absolute; left: 200%; width: 100%; height: 100%;
  background: inherit; border-radius: inherit;
  box-shadow: inherit;
}
.scn-epilogue-justice .door {
  position: absolute; bottom: 25%; left: 45%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: ej-door 9s ease-in-out infinite alternate;
}
.scn-epilogue-justice .steps {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 3%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ej-steps 8s ease-in-out infinite;
}
.scn-epilogue-justice .judge-silhouette {
  position: absolute; bottom: 28%; left: 42%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1212 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ej-judge 6s ease-in-out infinite alternate;
}
@keyframes ej-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ej-courthouse { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(0.99); } 100% { transform: translateY(0) scale(1); } }
@keyframes ej-columns { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ej-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.3); } 100% { transform: scaleX(1); } }
@keyframes ej-steps { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ej-judge { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }

/* Scene 4 */
.scn-baker-street-hux-table-arival {
  background: linear-gradient(180deg, #d0b090 0%, #b09070 40%, #806050 100%),
              radial-gradient(ellipse at 50% 70%, #f0d0a0 0%, transparent 60%);
}
.scn-baker-street-hux-table-arival .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c8a888 0%, #a08060 100%);
  animation: bsh-wall 8s ease-in-out infinite alternate;
}
.scn-baker-street-hux-table-arival .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  animation: bsh-floor 10s ease-in-out infinite;
}
.scn-baker-street-hux-table-arival .lamplight {
  position: absolute; top: 15%; left: 30%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffc070 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffc070, 0 0 120px 40px rgba(255,192,112,0.3);
  animation: bsh-lamp 3s ease-in-out infinite alternate;
}
.scn-baker-street-hux-table-arival .door {
  position: absolute; bottom: 25%; left: 10%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2010 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bsh-door 2s ease-in-out infinite alternate;
}
.scn-baker-street-hux-table-arival .figure-hux-table {
  position: absolute; bottom: 25%; left: 15%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bsh-figure 4s ease-in-out infinite;
}
.scn-baker-street-hux-table-arival .holmes-shadow {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  box-shadow: -10px 0 15px rgba(0,0,0,0.3);
  animation: bsh-holmes 5s ease-in-out infinite alternate;
}
.scn-baker-street-hux-table-arival .watson-shadow {
  position: absolute; bottom: 25%; left: 60%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  box-shadow: -8px 0 12px rgba(0,0,0,0.3);
  animation: bsh-watson 6s ease-in-out infinite alternate;
}
@keyframes bsh-wall { 0% { background-position: 0% 0%; } 50% { background-position: 50% 5%; } 100% { background-position: 100% 0%; } }
@keyframes bsh-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes bsh-lamp { 0% { box-shadow: 0 0 40px 15px #ffc070; opacity: 0.9; } 50% { box-shadow: 0 0 80px 30px #ffd080; opacity: 1; } 100% { box-shadow: 0 0 50px 20px #ffc070; opacity: 0.85; } }
@keyframes bsh-door { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(-3px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes bsh-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes bsh-holmes { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes bsh-watson { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }

/* police-limitations */
.scn-police-limitations {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #eedacd 0%, #dec3b0 100%),
              radial-gradient(ellipse at 50% 70%, #f2e6d8 0%, transparent 60%);
}
.scn-police-limitations .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d9c4a8 0%, #c7af8f 100%); }
.scn-police-limitations .window-arch { position:absolute; top:10%; left:20%; width:35%; height:45%; background: radial-gradient(ellipse 70% 80% at 50% 100%, #c0b0a0 0%, #b0a090 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.08); }
.scn-police-limitations .desk { position:absolute; bottom:30%; left:10%; right:10%; height:15%; background: linear-gradient(135deg, #a08060, #7a5e3e 40%, #604830 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-police-limitations .lamp-base { position:absolute; bottom:40%; left:35%; width:12px; height:20px; background: linear-gradient(180deg, #c0a080, #8a6a4a); border-radius: 20% 20% 10% 10%; transform: rotate(-5deg); }
.scn-police-limitations .lamp-glow { position:absolute; bottom:45%; left:34%; width:40px; height:40px; background: radial-gradient(circle, #ffe8b0 0%, #ffd090 40%, transparent 70%); border-radius: 50%; animation: pli-lampglow 4s ease-in-out infinite alternate; }
.scn-police-limitations .paper { position:absolute; bottom:32%; left:25%; width:50px; height:35px; background: linear-gradient(135deg, #f8f0e0, #e8dcc8); border-radius: 2px; box-shadow: 1px 2px 4px rgba(0,0,0,0.15); transform: rotate(2deg); animation: pli-paper 6s ease-in-out infinite; }
.scn-police-limitations .figure-shadow { position:absolute; bottom:30%; left:60%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: skewX(-5deg); animation: pli-figure 8s ease-in-out infinite alternate; }
.scn-police-limitations .magnifying-glass { position:absolute; bottom:33%; left:20%; width:16px; height:16px; border: 2px solid #9a7a5a; border-radius: 50%; background: radial-gradient(circle at 40% 40%, #e0d0bb 0%, transparent 60%); box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform: rotate(15deg); animation: pli-glass 5s ease-in-out infinite alternate; }
@keyframes pli-lampglow { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes pli-paper { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(1px) } }
@keyframes pli-figure { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-3deg) translateY(-4px) } 100% { transform: skewX(-6deg) translateY(0) } }
@keyframes pli-glass { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(10deg) scale(1.05) } 100% { transform: rotate(20deg) scale(0.95) } }

/* introducing-adair */
.scn-introducing-adair {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #f5eee2 0%, #e5d4be 100%),
              radial-gradient(ellipse at 60% 30%, #faf5ea 0%, transparent 70%);
}
.scn-introducing-adair .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e2cfb8 0%, #d0bba0 100%); }
.scn-introducing-adair .window-light { position:absolute; top:8%; left:15%; width:50%; height:70%; background: radial-gradient(ellipse at 70% 20%, #fff8ee 0%, transparent 70%); opacity:0.6; animation: iad-windowlight 7s ease-in-out infinite alternate; }
.scn-introducing-adair .curtain-curve { position:absolute; top:5%; left:10%; width:80%; height:60%; background: linear-gradient(135deg, #b8a088 0%, #908070 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; opacity:0.4; }
.scn-introducing-adair .silhouette-adair { position:absolute; bottom:30%; left:40%; width:30px; height:65px; background: linear-gradient(180deg, #3a3028 0%, #1a1008 100%); border-radius: 30% 30% 25% 25% / 50% 50% 30% 30%; transform: rotate(-2deg); animation: iad-body 6s ease-in-out infinite alternate; }
.scn-introducing-adair .collar-tie { position:absolute; bottom:55%; left:41.5%; width:10px; height:12px; background: linear-gradient(180deg, #666060, #444040); border-radius: 20% 20% 30% 30%; transform: rotate(10deg); animation: iad-collar 3s ease-in-out infinite alternate; }
.scn-introducing-adair .floorboard { position:absolute; bottom:30%; left:0; right:0; height:8%; background: repeating-linear-gradient(90deg, #b8a088 0px, #b8a088 15px, #a08a70 15px, #a08a70 30px); animation: iad-floor 20s linear infinite; }
@keyframes iad-windowlight { 0% { opacity:0.5; transform: scale(0.95) } 50% { opacity:0.7; transform: scale(1.05) } 100% { opacity:0.6; transform: scale(1) } }
@keyframes iad-body { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-3px) } 100% { transform: rotate(-3deg) translateY(1px) } }
@keyframes iad-collar { 0% { transform: rotate(10deg) scale(1) } 100% { transform: rotate(5deg) scale(1.05) } }
@keyframes iad-floor { 0% { background-position: 0 0 } 100% { background-position: 30px 0 } }

/* adair-character */
.scn-adair-character {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #f2e3d0 0%, #dfcab3 100%),
              radial-gradient(ellipse at 50% 40%, #faf0e0 0%, transparent 80%);
}
.scn-adair-character .wall-panel { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d4bda5, #c7af95 50%, #d4bda5 100%); }
.scn-adair-character .oval-frame { position:absolute; top:10%; left:30%; width:40%; height:60%; border: 6px solid #8a7056; border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; background: radial-gradient(ellipse at 50% 45%, #e3d4be 0%, #c7b49a 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.15); animation: ach-frameshadow 5s ease-in-out infinite alternate; }
.scn-adair-character .silhouette-head { position:absolute; top:17%; left:38%; width:24%; height:35%; background: linear-gradient(180deg, #3a3028 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(3deg); animation: ach-head 8s ease-in-out infinite alternate; }
.scn-adair-character .collar-bow { position:absolute; top:42%; left:45%; width:8px; height:6px; background: #6a5a4a; border-radius: 50%; transform: rotate(-10deg); animation: ach-bow 3s ease-in-out infinite alternate; }
.scn-adair-character .small-flower { position:absolute; top:50%; left:35%; width:6px; height:6px; background: radial-gradient(circle, #b87878 0%, #702243 100%); border-radius: 50%; box-shadow: 0 0 4px #b87878; animation: ach-flower 4s ease-in-out infinite; }
.scn-adair-character .shadow-blur { position:absolute; bottom:25%; left:25%; width:50%; height:15%; background: radial-gradient(ellipse, rgba(0,0,0,0.1) 0%, transparent 100%); filter: blur(8px); animation: ach-shadow 6s ease-in-out infinite alternate; }
@keyframes ach-frameshadow { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.15); } 50% { box-shadow: inset 0 0 25px rgba(0,0,0,0.12), 0 10px 20px rgba(0,0,0,0.2); } 100% { box-shadow: inset 0 0 18px rgba(0,0,0,0.08), 0 6px 12px rgba(0,0,0,0.1); } }
@keyframes ach-head { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(4deg) translateY(2px); } }
@keyframes ach-bow { 0% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes ach-flower { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ach-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.4; } }

/* adair-card-habits */
.scn-adair-card-habits {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #f7ede0 0%, #e4d2bd 100%),
              radial-gradient(ellipse at 50% 60%, #fff6ea 0%, transparent 70%);
}
.scn-adair-card-habits .table-felt { position:absolute; bottom:20%; left:5%; right:5%; height:40%; background: linear-gradient(135deg, #2b6b3a 0%, #1d4e28 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-adair-card-habits .card-deck { position:absolute; bottom:32%; left:45%; width:30px; height:40px; background: linear-gradient(135deg, #f5f0e5 0%, #d8c8b0 100%); border: 1px solid #b0a090; border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: aca-deck 6s ease-in-out infinite alternate; }
.scn-adair-card-habits .card-single { position:absolute; bottom:28%; left:40%; width:24px; height:34px; background: linear-gradient(135deg, #f5f0e5 0%, #d8c8b0 100%); border: 1px solid #b0a090; border-radius: 2px; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.15); animation: aca-card 3s ease-in-out infinite alternate; }
.scn-adair-card-habits .hand-silhouette { position:absolute; bottom:26%; left:35%; width:28px; height:22px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-20deg); animation: aca-hand 4s ease-in-out infinite alternate; }
.scn-adair-card-habits .lamp-brass { position:absolute; bottom:55%; left:25%; width:14px; height:24px; background: linear-gradient(180deg, #b8916a 0%, #8a6a4a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(8deg); }
.scn-adair-card-habits .lamp-halo { position:absolute; bottom:55%; left:22%; width:40px; height:50px; background: radial-gradient(circle, #ffe8b0 0%, #ffd090 30%, transparent 70%); border-radius: 50%; animation: aca-lamp 5s ease-in-out infinite alternate; }
.scn-adair-card-habits .chip-stack { position:absolute; bottom:27%; left:55%; width:12px; height:8px; background: repeating-linear-gradient(180deg, #bf9040 0px, #bf9040 2px, #a07830 2px, #a07830 4px); border-radius: 20%; animation: aca-chips 7s ease-in-out infinite; }
@keyframes aca-deck { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(6deg) translateY(1px); } }
@keyframes aca-card { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-17deg) translateY(1px); } }
@keyframes aca-hand { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(5px); } 100% { transform: rotate(-22deg) translateX(2px); } }
@keyframes aca-lamp { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes aca-chips { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-anna-weakens { background: linear-gradient(180deg, #f5e6c8 0%, #d6b87a 70%, #b89860 100%), radial-gradient(ellipse at 50% 60%, #ffe8b0 0%, transparent 60%); position: relative; overflow: hidden; height: 100vh; }
.scn-anna-weakens .wall { position: absolute; inset: 0; background: linear-gradient(135deg, #f0dbb0 0%, #d6b87a 100%); opacity: 0.8; }
.scn-anna-weakens .door { position: absolute; left: 70%; top: 20%; width: 25%; height: 70%; background: linear-gradient(180deg, #8b6f4e 0%, #5a3e2a 100%); border-radius: 4px 4px 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3), 4px 0 8px rgba(0,0,0,0.2); transform: perspective(400px) rotateY(10deg); animation: aw-door 12s ease-in-out infinite alternate; }
.scn-anna-weakens .window-glow { position: absolute; left: 30%; top: 25%; width: 15%; height: 30%; background: radial-gradient(ellipse at center, #ffe8b0 0%, #ffcc80 40%, transparent 70%); border-radius: 8px; box-shadow: 0 0 40px 20px rgba(255,232,176,0.5); animation: aw-glow 4s ease-in-out infinite alternate; }
.scn-anna-weakens .figure { position: absolute; left: 40%; bottom: 15%; width: 8%; height: 40%; background: linear-gradient(180deg, #3d2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aw-figure 6s ease-in-out infinite; }
.scn-anna-weakens .shadow { position: absolute; left: 35%; bottom: 0; width: 20%; height: 15%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); filter: blur(8px); animation: aw-shadow 6s ease-in-out infinite; }
.scn-anna-weakens .table { position: absolute; left: 25%; bottom: 10%; width: 20%; height: 3%; background: linear-gradient(180deg, #6b4c2e 0%, #4a321e 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-anna-weakens .lamp-glow { position: absolute; left: 50%; top: 10%; width: 10%; height: 10%; background: radial-gradient(circle, #ffd080 0%, #ffb040 40%, transparent 70%); filter: blur(10px); animation: aw-lamp 3s ease-in-out infinite alternate; }
@keyframes aw-door { 0% { transform: perspective(400px) rotateY(10deg) translateX(0); } 100% { transform: perspective(400px) rotateY(15deg) translateX(-5px); } }
@keyframes aw-glow { 0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(255,232,176,0.4); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,232,176,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 40px 20px rgba(255,232,176,0.5); } }
@keyframes aw-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes aw-shadow { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.4; transform: scaleX(0.8); } 100% { opacity: 0.7; transform: scaleX(1.1); } }
@keyframes aw-lamp { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }

.scn-husband-hides-her { background: linear-gradient(180deg, #d4b878 0%, #b89050 60%, #9a7838 100%), radial-gradient(ellipse at 80% 50%, #ffe0a0 0%, transparent 70%); position: relative; overflow: hidden; height: 100vh; }
.scn-husband-hides-her .wall-lit { position: absolute; inset: 0; background: linear-gradient(135deg, #e8d4a8 0%, #c8a870 50%, #a88850 100%); }
.scn-husband-hides-her .hiding-hole { position: absolute; left: 10%; top: 10%; width: 30%; height: 80%; background: radial-gradient(ellipse at 30% 50%, #1a1008 0%, #0d0804 70%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 4px 0 12px rgba(0,0,0,0.5); transform: skewX(-5deg); animation: hh-hole 15s ease-in-out infinite alternate; }
.scn-husband-hides-her .husband { position: absolute; left: 40%; bottom: 10%; width: 12%; height: 50%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hh-husband 5s ease-in-out infinite; }
.scn-husband-hides-her .woman-crouch { position: absolute; left: 25%; bottom: 15%; width: 8%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform: rotate(15deg); animation: hh-woman 4s ease-in-out infinite alternate; }
.scn-husband-hides-her .candle-glow { position: absolute; left: 60%; top: 30%; width: 12%; height: 12%; background: radial-gradient(circle, #ffd080 0%, #ffa030 40%, transparent 70%); filter: blur(15px); animation: hh-candle 2s ease-in-out infinite alternate; }
.scn-husband-hides-her .candle-body { position: absolute; left: 63%; top: 40%; width: 2%; height: 10%; background: linear-gradient(180deg, #e8d0a0 0%, #b89060 100%); border-radius: 20%; transform: translateX(-50%); animation: hh-candle 2s ease-in-out infinite alternate; }
.scn-husband-hides-her .shadow-pool { position: absolute; left: 40%; bottom: 0; width: 30%; height: 20%; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); filter: blur(12px); animation: hh-shadow 8s ease-in-out infinite alternate; }
@keyframes hh-hole { 0% { transform: skewX(-5deg) scaleY(1); } 50% { transform: skewX(-3deg) scaleY(0.98); } 100% { transform: skewX(-6deg) scaleY(1.02); } }
@keyframes hh-husband { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(0); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes hh-woman { 0% { transform: rotate(15deg) translateX(0); } 100% { transform: rotate(10deg) translateX(5px); } }
@keyframes hh-candle { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes hh-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.3; transform: scaleX(0.8); } 100% { opacity: 0.6; transform: scaleX(1.2); } }

.scn-anna-takes-poison { background: linear-gradient(180deg, #e8d4b0 0%, #c8a870 60%, #a88850 100%), radial-gradient(ellipse at 50% 40%, #ffe0b0 0%, transparent 60%); position: relative; overflow: hidden; height: 100vh; }
.scn-anna-takes-poison .room-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #f0dbb0 0%, #d6b87a 100%); opacity: 0.7; }
.scn-anna-takes-poison .table { position: absolute; left: 30%; bottom: 15%; width: 40%; height: 4%; background: linear-gradient(180deg, #6b4c2e 0%, #4a321e 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: ap-table 2s ease-in-out infinite alternate; }
.scn-anna-takes-poison .holmes-arm { position: absolute; left: 25%; bottom: 20%; width: 15%; height: 50%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom left; transform: rotate(-20deg); animation: ap-arm-h 0.8s ease-in-out infinite alternate; }
.scn-anna-takes-poison .anna-arm { position: absolute; left: 55%; bottom: 20%; width: 12%; height: 45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom right; transform: rotate(15deg); animation: ap-arm-a 0.6s ease-in-out infinite alternate; }
.scn-anna-takes-poison .phial { position: absolute; left: 45%; bottom: 40%; width: 4%; height: 10%; background: radial-gradient(ellipse, #a0d0e0 0%, #5090a0 60%); border-radius: 40%; box-shadow: 0 0 20px 10px rgba(80,144,160,0.5); animation: ap-phial 0.4s ease-in-out infinite alternate; }
.scn-anna-takes-poison .chair { position: absolute; left: 20%; bottom: 10%; width: 20%; height: 30%; background: linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 100%); border-radius: 8px 8px 4px 4px; transform: perspective(200px) rotateX(5deg); animation: ap-chair 3s ease-in-out infinite alternate; }
.scn-anna-takes-poison .floor { position: absolute; left: 0; bottom: 0; width: 100%; height: 10%; background: linear-gradient(180deg, #b89060 0%, #9a7838 100%); opacity: 0.8; }
@keyframes ap-table { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes ap-arm-h { 0% { transform: rotate(-20deg) translateX(0); } 100% { transform: rotate(-15deg) translateX(10px); } }
@keyframes ap-arm-a { 0% { transform: rotate(15deg) translateX(0); } 100% { transform: rotate(10deg) translateX(-8px); } }
@keyframes ap-phial { 0% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(3px, -2px) rotate(10deg); } 100% { transform: translate(-2px, 1px) rotate(-5deg); } }
@keyframes ap-chair { 0% { transform: perspective(200px) rotateX(5deg) scaleY(1); } 100% { transform: perspective(200px) rotateX(3deg) scaleY(1.02); } }

.scn-holmes-summarizes { background: linear-gradient(180deg, #c8b080 0%, #a89060 50%, #8a7848 100%), radial-gradient(ellipse at 30% 30%, #e0c898 0%, transparent 70%); position: relative; overflow: hidden; height: 100vh; }
.scn-holmes-summarizes .carriage-wall { position: absolute; inset: 0; background: linear-gradient(135deg, #c0a878 0%, #a08858 100%); border-radius: 4px; }
.scn-holmes-summarizes .window { position: absolute; left: 10%; top: 20%; width: 30%; height: 50%; background: radial-gradient(ellipse at center, #9ac8e0 0%, #7ab0c8 50%, #508090 100%); border: 4px solid #7a6848; border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); overflow: hidden; }
.scn-holmes-summarizes .window::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.1) 50%, transparent 100%); animation: hs-window-shine 6s ease-in-out infinite alternate; }
.scn-holmes-summarizes .seat { position: absolute; left: 40%; bottom: 10%; width: 50%; height: 20%; background: linear-gradient(180deg, #6b4c2e 0%, #4a321e 100%); border-radius: 10px 10px 4px 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-holmes-summarizes .holmes-silhouette { position: absolute; left: 45%; bottom: 20%; width: 10%; height: 35%; background: linear-gradient(180deg, #1a100a 0%, #0d0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-holmes 8s ease-in-out infinite; }
.scn-holmes-summarizes .watson-silhouette { position: absolute; left: 60%; bottom: 20%; width: 9%; height: 32%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-watson 10s ease-in-out infinite; }
.scn-holmes-summarizes .lamp { position: absolute; left: 70%; top: 10%; width: 6%; height: 6%; background: radial-gradient(circle, #ffe0a0 0%, #ffc060 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(255,192,96,0.4); animation: hs-lamp 4s ease-in-out infinite alternate; }
.scn-holmes-summarizes .landscape-blur { position: absolute; left: 10%; top: 20%; width: 30%; height: 50%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 50%, #3a5a2a 100%); filter: blur(8px); opacity: 0.6; animation: hs-landscape 20s linear infinite; }
.scn-holmes-summarizes .landscape-blur::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.2) 30%, transparent 60%); animation: hs-landscape 20s linear infinite; }
@keyframes hs-window-shine { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
@keyframes hs-holmes { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(0); } }
@keyframes hs-watson { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(1px) rotate(2deg); } 70% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes hs-lamp { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes hs-landscape { 0% { transform: translateX(0); } 100% { transform: translateX(-30%); } }

.scn-huxtable-on-german-master-2 {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e2e 40%, #1e121a 100%),
              radial-gradient(ellipse at 30% 80%, #3a2a3a 0%, transparent 70%);
}
.scn-huxtable-on-german-master-2 .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1e2e 0%, #1e121a 100%);
  animation: hgm2-wall 6s ease-in-out infinite alternate;
}
.scn-huxtable-on-german-master-2 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1e1616 0%, #12100e 100%);
}
.scn-huxtable-on-german-master-2 .bed {
  position: absolute; bottom: 30%; left: 10%; width: 50%; height: 20%;
  background: linear-gradient(135deg, #3a2a2a, #2a1a1a);
  border-radius: 6% 6% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: hgm2-bed 4s ease-in-out infinite;
}
.scn-huxtable-on-german-master-2 .window {
  position: absolute; top: 15%; right: 15%; width: 22%; height: 30%;
  background: radial-gradient(ellipse at center, #4a4a6a 0%, #2a2a4a 60%, transparent 100%);
  border: 2px solid #1a1a2a; border-radius: 4%;
  box-shadow: 0 0 20px 8px rgba(50,50,80,.5);
  animation: hgm2-window 8s ease-in-out infinite alternate;
}
.scn-huxtable-on-german-master-2 .shirt {
  position: absolute; bottom: 18%; left: 20%; width: 12%; height: 6%;
  background: #b8b0a0; border-radius: 20% 10% 40% 40%;
  transform: rotate(-15deg); filter: blur(1px);
  animation: hgm2-cloth 3s ease-in-out infinite;
}
.scn-huxtable-on-german-master-2 .socks {
  position: absolute; bottom: 16%; left: 35%; width: 8%; height: 4%;
  background: #c0b8a8; border-radius: 50% 50% 20% 20%;
  transform: rotate(10deg);
  animation: hgm2-cloth 3.5s ease-in-out infinite;
}
.scn-huxtable-on-german-master-2 .figure-escape {
  position: absolute; bottom: 40%; left: 50%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #10101a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hgm2-figure 5s ease-in-out infinite;
}
@keyframes hgm2-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes hgm2-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes hgm2-window { 0% { box-shadow:0 0 15px 4px rgba(50,50,80,.4); } 50% { box-shadow:0 0 30px 12px rgba(50,50,80,.7); } 100% { box-shadow:0 0 20px 6px rgba(50,50,80,.5); } }
@keyframes hgm2-cloth { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } }
@keyframes hgm2-figure { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(0.95) translateX(-8px); } 100% { transform: scaleY(1) translateX(0); } }

.scn-huxtable-on-investigation {
  background: linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 50%, #3a4a4a 100%),
              radial-gradient(ellipse at 50% 0%, #6a7a7a 0%, transparent 60%);
}
.scn-huxtable-on-investigation .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 100%);
  animation: hinv-sky 12s ease-in-out infinite alternate;
}
.scn-huxtable-on-investigation .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%);
}
.scn-huxtable-on-investigation .hall-facade {
  position: absolute; bottom: 30%; left: 20%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 2% 2%;
  box-shadow: 8px 0 16px rgba(0,0,0,.5), -4px 0 8px rgba(0,0,0,.3);
  animation: hinv-hall 6s ease-in-out infinite alternate;
}
.scn-huxtable-on-investigation .fig-investigator-a {
  position: absolute; bottom: 28%; left: 48%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: hinv-fig-a 4s ease-in-out infinite;
}
.scn-huxtable-on-investigation .fig-investigator-b {
  position: absolute; bottom: 30%; left: 56%; width: 5%; height: 16%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: hinv-fig-b 4.5s ease-in-out infinite;
}
.scn-huxtable-on-investigation .tree-barren {
  position: absolute; bottom: 35%; left: 10%; width: 4%; height: 35%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: hinv-tree 8s ease-in-out infinite alternate;
}
.scn-huxtable-on-investigation .fog-bank {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, transparent, rgba(180,190,190,.3) 30%, rgba(200,210,210,.4) 50%, rgba(180,190,190,.3) 70%, transparent);
  filter: blur(10px);
  animation: hinv-fog 20s linear infinite;
}
@keyframes hinv-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes hinv-hall { 0% { transform: scale(1); } 50% { transform: scale(0.97); } 100% { transform: scale(1); } }
@keyframes hinv-fig-a { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(2deg); } }
@keyframes hinv-fig-b { 0%,100% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(3px); } }
@keyframes hinv-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes hinv-fog { 0% { transform: translateX(-20%); } 100% { transform: translateX(20%); } }

.scn-holmes-notes {
  background: linear-gradient(180deg, #f5f0e0 0%, #ece4d0 40%, #d8cfb8 100%),
              radial-gradient(ellipse at 50% 100%, #f0e8d0 0%, transparent 70%);
}
.scn-holmes-notes .wall-warm {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d8c4 100%);
  animation: hno-wall 8s ease-in-out infinite alternate;
}
.scn-holmes-notes .desk-wood {
  position: absolute; bottom: 20%; left: 10%; width: 60%; height: 20%;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 6% 6% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: hno-desk 6s ease-in-out infinite;
}
.scn-holmes-notes .chair-leather {
  position: absolute; bottom: 15%; left: 5%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-3deg);
}
.scn-holmes-notes .holmes-silhouette {
  position: absolute; bottom: 25%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: hno-holmes 4s ease-in-out infinite;
}
.scn-holmes-notes .lamp-glow {
  position: absolute; top: 20%; right: 25%; width: 20%; height: 20%;
  background: radial-gradient(circle, #f0e080 0%, #e0c860 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,224,128,.6);
  animation: hno-lamp 3s ease-in-out infinite alternate;
}
.scn-holmes-notes .papers-stack {
  position: absolute; bottom: 25%; left: 45%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%);
  border-radius: 2%; box-shadow: 2px 2px 4px rgba(0,0,0,.2);
  transform: rotate(2deg);
}
.scn-holmes-notes .magnifying-glass {
  position: absolute; bottom: 28%; left: 55%; width: 10%; height: 10%;
  background: radial-gradient(circle, #d0d8e0 0%, #a0a8b0 60%, transparent 100%);
  border-radius: 50%; border: 2px solid #4a4a5a;
  box-shadow: 0 0 10px 2px rgba(0,0,0,.15);
  animation: hno-glass 5s ease-in-out infinite;
}
@keyframes hno-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes hno-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hno-holmes { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(0.97) rotate(1deg); } 100% { transform: scaleY(1) rotate(0); } }
@keyframes hno-lamp { 0% { box-shadow:0 0 30px 10px rgba(240,224,128,.5); } 50% { box-shadow:0 0 50px 20px rgba(240,224,128,.8); } 100% { box-shadow:0 0 35px 15px rgba(240,224,128,.6); } }
@keyframes hno-glass { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(0.95); } 100% { transform: rotate(-2deg) scale(1); } }

.scn-huxtable-defends {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 50%, #c8b8a0 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 70%);
}
.scn-huxtable-defends .room-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 100%);
  animation: hdef-room 6s ease-in-out infinite alternate;
}
.scn-huxtable-defends .desk-mahogany {
  position: absolute; bottom: 20%; left: 15%; width: 55%; height: 20%;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,.4);
}
.scn-huxtable-defends .huxtable-figure {
  position: absolute; bottom: 25%; left: 20%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  animation: hdef-huxtable 4s ease-in-out infinite;
}
.scn-huxtable-defends .holmes-profile {
  position: absolute; bottom: 28%; right: 20%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 30% 30%;
  transform: scaleX(-1);
  animation: hdef-holmes 5s ease-in-out infinite;
}
.scn-huxtable-defends .window-bright {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, #fff8e0 0%, #e8dcc0 60%, transparent 100%);
  border: 2px solid #b0a088; border-radius: 4%;
  box-shadow: 0 0 30px 15px rgba(255,248,224,.5);
  animation: hdef-window 8s ease-in-out infinite alternate;
}
.scn-huxtable-defends .papers-scattered {
  position: absolute; bottom: 25%; left: 35%; width: 10%; height: 6%;
  background: #f0e8d0; border-radius: 2%; box-shadow: 2px 2px 4px rgba(0,0,0,.2);
  transform: rotate(-5deg);
  animation: hdef-papers 3s ease-in-out infinite;
}
.scn-huxtable-defends .shadow-sharp {
  position: absolute; bottom: 20%; left: 10%; width: 60%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, transparent 100%);
  filter: blur(4px);
  animation: hdef-shadow 5s ease-in-out infinite alternate;
}
@keyframes hdef-room { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes hdef-huxtable { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes hdef-holmes { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(-2px); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes hdef-window { 0% { box-shadow:0 0 20px 8px rgba(255,248,224,.4); } 50% { box-shadow:0 0 40px 20px rgba(255,248,224,.7); } 100% { box-shadow:0 0 25px 12px rgba(255,248,224,.5); } }
@keyframes hdef-papers { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes hdef-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-duke-confesses-motives {
  background:
    linear-gradient(180deg, #fcf4e8 0%, #f0e2c8 40%),
    radial-gradient(ellipse at 30% 20%, #fff8ec 0%, transparent 70%);
}
.scn-duke-confesses-motives .backwall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8dbb8 0%, #dacba5 100%);
}
.scn-duke-confesses-motives .window {
  position: absolute; top: 5%; left: 60%; width: 28%; height: 45%;
  background: linear-gradient(180deg, #fff6e0 0%, #e8dcba 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px #fff3dd;
  animation: dcm-window 8s ease-in-out infinite alternate;
}
.scn-duke-confesses-motives .sunbeam {
  position: absolute; top: 5%; left: 60%; width: 20%; height: 60%;
  background: linear-gradient(135deg, rgba(255,248,224,0.4) 0%, rgba(255,248,224,0) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: dcm-beam 4s ease-in-out infinite alternate;
}
.scn-duke-confesses-motives .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8b7355 0%, #6b563a 100%);
  border-radius: 0 0 4% 4%;
}
.scn-duke-confesses-motives .desk {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 12%;
  background: linear-gradient(180deg, #5c4a30 0%, #3e2f1e 100%);
  border-radius: 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: dcm-desk 5s ease-in-out infinite;
}
.scn-duke-confesses-motives .chair {
  position: absolute; bottom: 22%; left: 55%; width: 20%; height: 20%;
  background: linear-gradient(180deg, #6b4c30 0%, #4a3320 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: -4px 6px 10px rgba(0,0,0,0.3);
}
.scn-duke-confesses-motives .figure-duke {
  position: absolute; bottom: 18%; left: 35%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dcm-figure 2s ease-in-out infinite alternate;
}
.scn-duke-confesses-motives .shadow-duke {
  position: absolute; bottom: 18%; left: 35%; width: 12%; height: 8%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: dcm-shadow 2s ease-in-out infinite alternate;
}
.scn-duke-confesses-motives .papers {
  position: absolute; bottom: 20%; left: 12%; width: 8%; height: 5%;
  background: #f0e2c8;
  border-radius: 4%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  animation: dcm-papers 4s ease-in-out infinite;
}
@keyframes dcm-window {
  0% { opacity: 0.9; box-shadow: inset 0 0 20px #fff3dd; }
  50% { opacity: 1; box-shadow: inset 0 0 35px #fff6e0; }
  100% { opacity: 0.85; box-shadow: inset 0 0 15px #eeddc0; }
}
@keyframes dcm-beam {
  0% { opacity: 0.3; transform: skewY(-5deg) scaleX(1.1); }
  50% { opacity: 0.7; transform: skewY(3deg) scaleX(0.9); }
  100% { opacity: 0.4; transform: skewY(-2deg) scaleX(1); }
}
@keyframes dcm-desk {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes dcm-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(0); }
  75% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes dcm-shadow {
  0%,100% { transform: scale(1); opacity: 0.2; }
  50% { transform: scale(1.1); opacity: 0.3; }
}
@keyframes dcm-papers {
  0%,100% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
}

.scn-duke-on-heidegger-death {
  background:
    linear-gradient(180deg, #f2e6d0 0%, #e0d0b0 50%),
    radial-gradient(ellipse at 40% 30%, #fff8ec 0%, transparent 60%);
}
.scn-duke-on-heidegger-death .backwall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ddd0b0 0%, #ccbf9c 100%);
}
.scn-duke-on-heidegger-death .window {
  position: absolute; top: 5%; left: 60%; width: 28%; height: 45%;
  background: linear-gradient(180deg, #fff8ec 0%, #e8dac0 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 30px #fff3dd;
  animation: dhd-window 5s ease-in-out infinite alternate;
}
.scn-duke-on-heidegger-death .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a684a 0%, #5c4b30 100%);
}
.scn-duke-on-heidegger-death .body-covered {
  position: absolute; bottom: 10%; left: 30%; width: 25%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: dhd-body 3s ease-in-out infinite alternate;
}
.scn-duke-on-heidegger-death .telegram {
  position: absolute; bottom: 15%; left: 35%; width: 8%; height: 4%;
  background: #f0e8d0;
  border-radius: 2%;
  transform: rotate(15deg);
  animation: dhd-telegram 4s ease-in-out infinite;
}
.scn-duke-on-heidegger-death .figure-james {
  position: absolute; bottom: 18%; left: 55%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dhd-james 2s ease-in-out infinite alternate;
}
.scn-duke-on-heidegger-death .desk-lamp {
  position: absolute; bottom: 22%; left: 10%; width: 8%; height: 6%;
  background: radial-gradient(circle, #f0c060 0%, #d08030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(240,192,96,0.6);
  animation: dhd-lamp 3s ease-in-out infinite alternate;
}
.scn-duke-on-heidegger-death .shadow-james {
  position: absolute; bottom: 18%; left: 55%; width: 12%; height: 8%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(5px);
  animation: dhd-shadow 2s ease-in-out infinite alternate;
}
@keyframes dhd-window {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dhd-body {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes dhd-telegram {
  0%,100% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
}
@keyframes dhd-james {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(-2px) rotate(0); }
  75% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes dhd-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(240,192,96,0.6); }
  50% { box-shadow: 0 0 30px 10px rgba(240,192,96,0.8); }
  100% { box-shadow: 0 0 18px 4px rgba(240,192,96,0.5); }
}
@keyframes dhd-shadow {
  0%,100% { transform: scale(1); opacity: 0.2; }
  50% { transform: scale(1.15); opacity: 0.25; }
}

.scn-holmes-reprimands {
  background:
    linear-gradient(180deg, #fcf4e8 0%, #f0e2c8 50%),
    radial-gradient(ellipse at 50% 30%, #fff8ec 0%, transparent 60%);
}
.scn-holmes-reprimands .backwall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ede0c8 0%, #dccfa8 100%);
}
.scn-holmes-reprimands .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 20%; height: 50%;
  background: repeating-linear-gradient(180deg, #6b4c30 0px, #6b4c30 6px, #8b6b40 6px, #8b6b40 12px);
  border-radius: 4%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: hre-shelf 12s ease-in-out infinite alternate;
}
.scn-holmes-reprimands .carpet {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3820 100%);
  border-radius: 0 0 6% 6%;
}
.scn-holmes-reprimands .figure-holmes {
  position: absolute; bottom: 12%; left: 25%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hre-holmes 8s ease-in-out infinite alternate;
}
.scn-holmes-reprimands .figure-duke-seated {
  position: absolute; bottom: 10%; left: 55%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hre-duke 6s ease-in-out infinite;
}
.scn-holmes-reprimands .chair-back {
  position: absolute; bottom: 10%; left: 54%; width: 16%; height: 32%;
  background: transparent;
  border: 4px solid #5c4a30;
  border-radius: 20% 20% 10% 10%;
  opacity: 0.6;
}
.scn-holmes-reprimands .window-light {
  position: absolute; top: 5%; left: 70%; width: 22%; height: 40%;
  background: linear-gradient(180deg, #fff8ec 0%, #e8dcc0 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 30px #fff3dd;
  animation: hre-light 10s ease-in-out infinite alternate;
}
.scn-holmes-reprimands .vase {
  position: absolute; bottom: 20%; left: 80%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #b08060 0%, #806040 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: hre-vase 7s ease-in-out infinite;
}
@keyframes hre-shelf {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hre-holmes {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-3px) rotate(0); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-2px) rotate(0); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hre-duke {
  0%,100% { transform: translateY(0) rotate(0); }
  33% { transform: translateY(-2px) rotate(-2deg); }
  66% { transform: translateY(1px) rotate(1deg); }
}
@keyframes hre-light {
  0% { opacity: 0.8; box-shadow: inset 0 0 30px #fff3dd; }
  50% { opacity: 1; box-shadow: inset 0 0 50px #fff8ec; }
  100% { opacity: 0.85; box-shadow: inset 0 0 25px #eeddc0; }
}
@keyframes hre-vase {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
}

.scn-holmes-conditions {
  background:
    linear-gradient(180deg, #fcf4e8 0%, #f0e2c8 45%),
    radial-gradient(ellipse at 60% 20%, #fff8ec 0%, transparent 70%);
}
.scn-holmes-conditions .backwall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8dbb8 0%, #dacba5 100%);
}
.scn-holmes-conditions .wainscoting {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: repeating-linear-gradient(90deg, #6b4c30 0px, #6b4c30 10px, #7a5a3a 10px, #7a5a3a 12px);
  border-radius: 0 0 4% 4%;
}
.scn-holmes-conditions .desk {
  position: absolute; bottom: 15%; left: 40%; width: 40%; height: 14%;
  background: linear-gradient(180deg, #5c4a30 0%, #3e2f1e 100%);
  border-radius: 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-holmes-conditions .figure-duke {
  position: absolute; bottom: 14%; left: 45%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hco-duke 5s ease-in-out infinite alternate;
}
.scn-holmes-conditions .arm-reach {
  position: absolute; bottom: 18%; left: 50%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: hco-arm 4s ease-in-out infinite alternate;
}
.scn-holmes-conditions .bellpull {
  position: absolute; bottom: 25%; left: 58%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 20%;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: hco-bell 3s ease-in-out infinite;
}
.scn-holmes-conditions .figure-holmes-side {
  position: absolute; bottom: 12%; left: 25%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hco-holmes 6s ease-in-out infinite;
}
.scn-holmes-conditions .shadow-desk {
  position: absolute; bottom: 15%; left: 40%; width: 42%; height: 4%;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: hco-shadow 4s ease-in-out infinite;
}
@keyframes hco-duke {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes hco-arm {
  0% { transform: rotate(0) translateX(0); }
  25% { transform: rotate(10deg) translateX(4px); }
  50% { transform: rotate(-5deg) translateX(-2px); }
  75% { transform: rotate(5deg) translateX(2px); }
  100% { transform: rotate(0) translateX(0); }
}
@keyframes hco-bell {
  0%,100% { transform: rotate(0) scaleY(1); }
  25% { transform: rotate(4deg) scaleY(1.05); }
  50% { transform: rotate(-2deg) scaleY(0.95); }
  75% { transform: rotate(3deg) scaleY(1.02); }
}
@keyframes hco-holmes {
  0%,100% { transform: translateY(0) rotate(0); }
  33% { transform: translateY(-2px) rotate(-2deg); }
  66% { transform: translateY(1px) rotate(1deg); }
}
@keyframes hco-shadow {
  0%,100% { transform: scale(1); opacity: 0.15; }
  50% { transform: scale(1.05); opacity: 0.2; }
}

/* gilchrist-summoned – tense, bright interior, doorway scene */
.scn-gilchrist-summoned {
  background: linear-gradient(180deg, #f5e8d0 0%, #e0cfa8 40%, #c8b080 100%),
              radial-gradient(ellipse at 40% 30%, rgba(255,240,200,0.6) 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-gilchrist-summoned .room-bg          { position:absolute; inset:0; background: linear-gradient(135deg, #d9c8a0 0%, #b8a078 100%); }
.scn-gilchrist-summoned .door-frame       { position:absolute; bottom:15%; left:50%; width:200px; height:280px; transform:translateX(-50%); background: linear-gradient(180deg, #8b7355 0%, #6b5b3e 100%); border-radius:8px 8px 0 0; box-shadow: 8px 0 20px rgba(0,0,0,0.3); }
.scn-gilchrist-summoned .door             { position:absolute; bottom:15%; left:50%; width:170px; height:260px; transform:translateX(-50%) translateY(10px); background: linear-gradient(180deg, #a08868 0%, #7a664a 100%); border-radius:4px; box-shadow: inset 0 2px 8px rgba(0,0,0,0.4); animation: gs-door 5s ease-in-out infinite; }
.scn-gilchrist-summoned .tutor-silhouette { position:absolute; bottom:15%; left:40%; width:40px; height:160px; background: linear-gradient(180deg, #3a3020 0%, #1c160e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gs-tutor 8s ease-in-out infinite alternate; }
.scn-gilchrist-summoned .gilchrist-silhouette { position:absolute; bottom:15%; right:38%; width:45px; height:170px; background: linear-gradient(180deg, #2a2218 0%, #14100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gs-gil 8s ease-in-out infinite alternate; }
.scn-gilchrist-summoned .floor-shadow    { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.25) 100%); }
.scn-gilchrist-summoned .light-shaft     { position:absolute; top:0; left:35%; width:120px; height:100%; background: linear-gradient(135deg, rgba(255,245,210,0.4) 0%, transparent 100%); filter: blur(8px); animation: gs-shaft 12s ease-in-out infinite alternate; }
.scn-gilchrist-summoned .dust-motes      { position:absolute; top:0; left:30%; width:200px; height:200%; background: radial-gradient(circle at 30% 20%, rgba(255,255,230,0.3) 0%, transparent 50%); filter: blur(3px); animation: gs-dust 20s linear infinite; }
@keyframes gs-door { 0% { transform: translateX(-50%) rotate(0deg) translateY(10px); } 50% { transform: translateX(-50%) rotate(-2deg) translateY(8px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(10px); } }
@keyframes gs-tutor { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-2px) translateY(0) rotate(-1deg); } }
@keyframes gs-gil   { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(2px) translateY(0) rotate(1deg); } }
@keyframes gs-shaft { 0% { opacity: 0.6; transform: translateX(0); } 50% { opacity: 1; transform: translateX(10px); } 100% { opacity: 0.7; transform: translateX(-5px); } }
@keyframes gs-dust  { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-30px) scale(1.1); } 100% { transform: translateY(-60px) scale(0.9); } }

/* gilchrist-accused – tense, bright interior, desk scene */
.scn-gilchrist-accused {
  background: linear-gradient(180deg, #eee5d5 0%, #d8c8a8 50%, #b8a080 100%),
              radial-gradient(ellipse at 50% 60%, rgba(230,210,170,0.4) 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-gilchrist-accused .room-bg          { position:absolute; inset:0; background: linear-gradient(135deg, #d4be9e 0%, #b09878 100%); }
.scn-gilchrist-accused .desk             { position:absolute; bottom:20%; left:25%; right:25%; height:25%; background: linear-gradient(180deg, #6a523a 0%, #4a3826 100%); border-radius: 10px 10px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.4); animation: ga-desk 10s ease-in-out infinite; }
.scn-gilchrist-accused .holmes-figure    { position:absolute; bottom:25%; left:30%; width:40px; height:180px; background: linear-gradient(180deg, #2e2319 0%, #14100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ga-holmes 6s ease-in-out infinite alternate; }
.scn-gilchrist-accused .gilchrist-figure { position:absolute; bottom:25%; right:30%; width:44px; height:175px; background: linear-gradient(180deg, #382c20 0%, #1c160e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ga-gil 6s ease-in-out infinite alternate; }
.scn-gilchrist-accused .lamp             { position:absolute; top:15%; left:48%; width:20px; height:50px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 30px 10px rgba(200,160,96,0.5); animation: ga-lamp 4s ease-in-out infinite alternate; }
.scn-gilchrist-accused .lamp-glow        { position:absolute; top:5%; left:40%; width:120px; height:90%; background: radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.4) 0%, transparent 70%); mix-blend-mode: overlay; animation: ga-glow 4s ease-in-out infinite alternate; }
.scn-gilchrist-accused .shadow-wall      { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, transparent 100%); }
.scn-gilchrist-accused .papers           { position:absolute; bottom:28%; left:38%; width:80px; height:10px; background: linear-gradient(90deg, #f5ecd8 0%, #e8dcc4 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: ga-papers 8s ease-in-out infinite; }
@keyframes ga-desk    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ga-holmes  { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ga-gil     { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes ga-lamp    { 0% { box-shadow: 0 0 20px 8px rgba(200,160,96,0.4); } 50% { box-shadow: 0 0 40px 15px rgba(255,210,140,0.6); } 100% { box-shadow: 0 0 25px 10px rgba(200,160,96,0.45); } }
@keyframes ga-glow    { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ga-papers  { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }

/* bannister-betrays – tense, bright interior, doorway spotlight */
.scn-bannister-betrays {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a89878 100%),
              radial-gradient(ellipse at 50% 30%, rgba(230,210,170,0.5) 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-bannister-betrays .hall-bg          { position:absolute; inset:0; background: linear-gradient(135deg, #d2be9e 0%, #b09878 100%); }
.scn-bannister-betrays .doorway          { position:absolute; bottom:10%; left:50%; width:180px; height:300px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a42 0%, #4a3a28 100%); border-radius: 12px 12px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-bannister-betrays .bannister-figure { position:absolute; bottom:15%; left:45%; width:35px; height:150px; background: linear-gradient(180deg, #3a2e20 0%, #1a140e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bb-bann 4s ease-in-out infinite alternate; }
.scn-bannister-betrays .holmes-shadow    { position:absolute; bottom:15%; right:30%; width:50px; height:170px; background: linear-gradient(180deg, rgba(20,16,10,0.8) 0%, rgba(10,8,5,0.6) 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; filter: blur(4px); animation: bb-holmes 6s ease-in-out infinite alternate; }
.scn-bannister-betrays .spotlight        { position:absolute; top:0; left:35%; width:120px; height:100%; background: linear-gradient(135deg, rgba(255,245,210,0.6) 0%, transparent 80%); filter: blur(10px); animation: bb-spot 5s ease-in-out infinite alternate; }
.scn-bannister-betrays .floor-board      { position:absolute; bottom:0; left:0; right:0; height:12%; background: repeating-linear-gradient(90deg, #8b7a64 0px, #7a6a54 4px, #8b7a64 8px); animation: bb-floor 3s ease-in-out infinite; }
@keyframes bb-bann  { 0% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1); } 50% { transform: translateX(3px) translateY(-1px) rotate(2deg) scaleX(0.95); } 100% { transform: translateX(-2px) translateY(0) rotate(-2deg) scaleX(1); } }
@keyframes bb-holmes { 0% { transform: translateX(0) translateY(0); opacity:0.4; } 50% { transform: translateX(-5px) translateY(-2px); opacity:0.7; } 100% { transform: translateX(3px) translateY(0); opacity:0.5; } }
@keyframes bb-spot { 0% { opacity: 0.5; transform: translateX(-5px) scaleY(1); } 50% { opacity: 1; transform: translateX(0) scaleY(1.1); } 100% { opacity: 0.6; transform: translateX(5px) scaleY(0.95); } }
@keyframes bb-floor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

/* holmes-console – warm, bright interior, fireplace scene */
.scn-holmes-console {
  background: linear-gradient(180deg, #d9b888 0%, #c09858 40%, #a07838 100%),
              radial-gradient(ellipse at 50% 70%, rgba(220,160,60,0.4) 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-holmes-console .study-bg           { position:absolute; inset:0; background: linear-gradient(135deg, #c8a060 0%, #a88848 100%); }
.scn-holmes-console .fireplace          { position:absolute; bottom:15%; left:20%; width:120px; height:180px; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 20px 20px 8px 8px; box-shadow: 0 0 40px 10px rgba(200,100,20,0.3); }
.scn-holmes-console .fire-glow          { position:absolute; bottom:20%; left:15%; width:180px; height:160px; background: radial-gradient(ellipse at 50% 100%, rgba(255,180,60,0.6) 0%, rgba(200,100,20,0.3) 50%, transparent 80%); filter: blur(12px); animation: hc-glow 4s ease-in-out infinite alternate; }
.scn-holmes-console .armchair           { position:absolute; bottom:10%; right:15%; width:100px; height:140px; background: linear-gradient(180deg, #6a4a2a 0%, #4a321a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(5deg); animation: hc-chair 8s ease-in-out infinite; }
.scn-holmes-console .holmes-silhouette  { position:absolute; bottom:18%; right:28%; width:40px; height:170px; background: linear-gradient(180deg, #2e2319 0%, #14100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-holmes 6s ease-in-out infinite alternate; }
.scn-holmes-console .soames-silhouette  { position:absolute; bottom:20%; left:35%; width:45px; height:160px; background: linear-gradient(180deg, #382c20 0%, #1c160e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-soames 6s ease-in-out infinite alternate; }
.scn-holmes-console .mantel             { position:absolute; bottom:42%; left:18%; width:140px; height:18px; background: linear-gradient(180deg, #7a5a3a 0%, #5a4028 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-holmes-console .warm-haze          { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, rgba(255,200,100,0.15) 0%, transparent 70%); mix-blend-mode: overlay; animation: hc-haze 8s ease-in-out infinite alternate; }
@keyframes hc-glow  { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } 100% { opacity: 0.75; transform: scale(0.98); } }
@keyframes hc-chair { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } }
@keyframes hc-holmes { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes hc-soames { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes hc-haze   { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

.scn-holmes-deduces-single-man { background: linear-gradient(135deg, #f5e6d0 0%, #d4c4a8 40%, #c2b09a 100%), radial-gradient(ellipse at 30% 50%, #e8d8c0 0%, transparent 60%); }
.scn-holmes-deduces-single-man .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d8c0 0%, #d4c4a8 100%); animation: hdsm-wall 20s ease-in-out infinite alternate; }
.scn-holmes-deduces-single-man .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b7355 0%, #6b5b3e 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: hdsm-floor 12s ease-in-out infinite; }
.scn-holmes-deduces-single-man .shadow-man { position:absolute; bottom:30%; right:20%; width:40px; height:80px; background: linear-gradient(180deg, #2a1f14 0%, #1a120a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hdsm-shadow 3s ease-in-out infinite alternate; }
.scn-holmes-deduces-single-man .holmes-silhouette { position:absolute; bottom:30%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hdsm-holmes 5s ease-in-out infinite alternate; }
.scn-holmes-deduces-single-man .desk { position:absolute; bottom:25%; left:30%; width:80px; height:20px; background: linear-gradient(180deg, #5c3a1e 0%, #3d2612 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: hdsm-desk 8s ease-in-out infinite; }
.scn-holmes-deduces-single-man .lamp-glow { position:absolute; bottom:45%; left:28%; width:16px; height:16px; background: radial-gradient(circle, #ffd699 0%, #e6b873 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #e6b873, 0 0 40px 12px rgba(230,184,115,.4); animation: hdsm-lamp 4s ease-in-out infinite; }
.scn-holmes-deduces-single-man .picture-frame { position:absolute; top:15%; right:20%; width:40px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border: 4px solid #8b7355; border-radius: 4px; transform: rotate(2deg); animation: hdsm-frame 15s ease-in-out infinite; }
@keyframes hdsm-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes hdsm-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hdsm-shadow { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) scale(1.02) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes hdsm-holmes { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-3deg) } }
@keyframes hdsm-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes hdsm-lamp { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(.95) } }
@keyframes hdsm-frame { 0%,100% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) translateY(-2px) } }

.scn-reconstruction-of-rope { background: linear-gradient(180deg, #d9c9b0 0%, #bfaa8a 50%, #a68a6a 100%), radial-gradient(ellipse at 50% 30%, #e6d6b8 0%, transparent 70%); }
.scn-reconstruction-of-rope .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e6d6b8 0%, #d9c9b0 100%); animation: recr-wall 25s ease-in-out infinite alternate; }
.scn-reconstruction-of-rope .mantelpiece { position:absolute; bottom:30%; left:20%; right:20%; height:24px; background: linear-gradient(180deg, #7a6448 0%, #5a4630 100%); border-radius: 6px 6px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: recr-mantel 10s ease-in-out infinite; }
.scn-reconstruction-of-rope .bracket { position:absolute; bottom:30%; left:40%; width:20px; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; transform: skewX(-10deg); animation: recr-bracket 6s ease-in-out infinite alternate; }
.scn-reconstruction-of-rope .rope { position:absolute; bottom:42%; left:42%; width:6px; height:60px; background: linear-gradient(180deg, #6b5b3e 0%, #4a3a2a 100%); border-radius: 3px; transform-origin: top center; animation: recr-rope 4s ease-in-out infinite; }
.scn-reconstruction-of-rope .knee-mark { position:absolute; bottom:36%; left:38%; width:16px; height:8px; background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 100%); border-radius: 50%; opacity:0.6; animation: recr-knee 7s ease-in-out infinite; }
.scn-reconstruction-of-rope .shadow-figure { position:absolute; bottom:30%; right:30%; width:30px; height:70px; background: linear-gradient(180deg, #1a120a 0%, #0d0805 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: recr-shadow 3s ease-in-out infinite alternate; }
.scn-reconstruction-of-rope .candle-glow { position:absolute; bottom:35%; left:10%; width:12px; height:20px; background: radial-gradient(ellipse at 50% 0%, #ffd699 0%, #e6b873 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 24px 8px #e6b873, 0 0 48px 12px rgba(230,184,115,.3); animation: recr-candle 5s ease-in-out infinite alternate; }
@keyframes recr-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes recr-mantel { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes recr-bracket { 0% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-10deg) translateX(2px) } 100% { transform: skewX(-10deg) translateX(-1px) } }
@keyframes recr-rope { 0% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes recr-knee { 0%,100% { opacity:.4 } 50% { opacity:.7; transform: scale(1.05) } }
@keyframes recr-shadow { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(.98) } }
@keyframes recr-candle { 0% { box-shadow: 0 0 18px 4px #e6b873; opacity:.8 } 50% { box-shadow: 0 0 30px 10px #ffd699; opacity:1 } 100% { box-shadow: 0 0 22px 6px #e6b873; opacity:.85 } }

.scn-interview-with-maid { background: linear-gradient(135deg, #f0e6d0 0%, #d9c9b0 40%, #bfaa8a 100%), radial-gradient(ellipse at 80% 20%, #e6d6b8 0%, transparent 60%); }
.scn-interview-with-maid .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8b7355 0%, #6b5b3e 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 6px 18px rgba(0,0,0,.3); animation: intm-floor 15s ease-in-out infinite; }
.scn-interview-with-maid .wallpaper { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d9c9b0 0%, #c2b09a 100%), repeating-linear-gradient(90deg, transparent, transparent 20px, rgba(0,0,0,.05) 20px, rgba(0,0,0,.05) 22px); animation: intm-wall 25s ease-in-out infinite alternate; }
.scn-interview-with-maid .chair-left { position:absolute; bottom:30%; left:15%; width:40px; height:50px; background: linear-gradient(180deg, #5a4630 0%, #3a2618 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform: rotate(-3deg); animation: intm-chair-left 8s ease-in-out infinite alternate; }
.scn-interview-with-maid .chair-right { position:absolute; bottom:30%; right:15%; width:40px; height:50px; background: linear-gradient(180deg, #5a4630 0%, #3a2618 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform: rotate(3deg); animation: intm-chair-right 8s ease-in-out infinite alternate; animation-delay: 0.5s; }
.scn-interview-with-maid .table { position:absolute; bottom:28%; left:35%; right:35%; height:18px; background: linear-gradient(180deg, #7a6448 0%, #5a4630 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: translateY(0); animation: intm-table 10s ease-in-out infinite; }
.scn-interview-with-maid .figure-holmes { position:absolute; bottom:30%; left:22%; width:24px; height:55px; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: intm-holmes 5s ease-in-out infinite alternate; }
.scn-interview-with-maid .figure-nurse { position:absolute; bottom:30%; right:22%; width:24px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: intm-nurse 5s ease-in-out infinite alternate; animation-delay: 1s; }
.scn-interview-with-maid .teacup { position:absolute; bottom:32%; left:48%; width:14px; height:10px; background: radial-gradient(ellipse at 50% 50%, #e8d8c0 0%, #d4c4a8 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform: translateX(-50%); animation: intm-teacup 6s ease-in-out infinite; }
@keyframes intm-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes intm-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes intm-chair-left { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes intm-chair-right { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes intm-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes intm-holmes { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes intm-nurse { 0% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(3deg) } }
@keyframes intm-teacup { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(10deg) } }

.scn-theresa-on-mistress { background: linear-gradient(180deg, #1a1a3a 0%, #2a2050 40%, #3a3060 100%), radial-gradient(ellipse at 50% 20%, #4a4a7a 0%, transparent 60%); }
.scn-theresa-on-mistress .curtain { position:absolute; right:0; top:0; bottom:0; width:40%; background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.5); transform: skewX(-5deg); animation: thmm-curtain 10s ease-in-out infinite alternate; }
.scn-theresa-on-mistress .window { position:absolute; left:10%; top:10%; width:50%; height:60%; background: radial-gradient(ellipse at 50% 50%, #a0b0d0 0%, #6070a0 100%); border: 8px solid #4a3a2a; box-shadow: inset 0 0 60px rgba(0,0,0,.4); clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); animation: thmm-window 8s ease-in-out infinite; }
.scn-theresa-on-mistress .arm-silhouette { position:absolute; left:35%; bottom:25%; width:30px; height:60px; background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-20deg); transform-origin: bottom center; animation: thmm-arm 3s ease-in-out infinite alternate; }
.scn-theresa-on-mistress .hatpin-shadow { position:absolute; left:42%; bottom:40%; width:4px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 2px; transform: rotate(15deg); animation: thmm-hatpin 2s ease-in-out infinite; }
.scn-theresa-on-mistress .scratch-marks { position:absolute; left:38%; bottom:38%; width:20px; height:8px; background: repeating-linear-gradient(45deg, #3a2a2a 0px, #3a2a2a 4px, transparent 4px, transparent 6px); opacity:0.6; animation: thmm-scratch 1.5s ease-in-out infinite alternate; }
.scn-theresa-on-mistress .blood-drop { position:absolute; left:40%; bottom:35%; width:6px; height:6px; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,85,61,.4); animation: thmm-blood 4s ease-in-out infinite; }
.scn-theresa-on-mistress .shadow-woman { position:absolute; bottom:20%; right:20%; width:40px; height:80px; background: linear-gradient(180deg, #0a0a1a 0%, #05050d 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: thmm-woman 6s ease-in-out infinite alternate; }
@keyframes thmm-curtain { 0% { transform: skewX(-5deg) translateX(0) } 50% { transform: skewX(-5deg) translateX(-5px) } 100% { transform: skewX(-5deg) translateX(0) } }
@keyframes thmm-window { 0%,100% { opacity:.75 } 50% { opacity:1 } }
@keyframes thmm-arm { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-20deg) translateX(4px) scale(1.02) } 100% { transform: rotate(-20deg) translateX(0) } }
@keyframes thmm-hatpin { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes thmm-scratch { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.3 } }
@keyframes thmm-blood { 0%,100% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.3); opacity:1 } }
@keyframes thmm-woman { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }

.scn-the-avenger-speaks {
  background:
    linear-gradient(180deg, #1a1620 0%, #2a2030 40%, #3a2a30 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a30 0%, transparent 70%);
}
.scn-the-avenger-speaks .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2030 0%, #1a1620 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}
.scn-the-avenger-speaks .window-glow {
  position: absolute; top: 18%; left: 62%; width: 50px; height: 70px;
  background: radial-gradient(ellipse, rgba(255,200,100,.3) 0%, transparent 70%);
  border-radius: 10% / 20%;
  animation: avs-window 6s ease-in-out infinite alternate;
}
.scn-the-avenger-speaks .desk {
  position: absolute; bottom: 22%; left: 30%; width: 100px; height: 10px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a2018 100%);
  border-radius: 4px;
}
.scn-the-avenger-speaks .lamp {
  position: absolute; bottom: 30%; left: 34%; width: 8px; height: 16px;
  background: #c0a060; border-radius: 40% 40% 4px 4px;
  box-shadow: 0 0 20px 8px #b08040, 0 0 40px 16px rgba(176,128,64,.4);
  animation: avs-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-the-avenger-speaks .chair-silhouette {
  position: absolute; bottom: 22%; left: 44%; width: 40px; height: 45px;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c10 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: avs-sit 5s ease-in-out infinite;
}
.scn-the-avenger-speaks .woman-silhouette {
  position: absolute; bottom: 22%; left: 28%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: avs-stand 7s ease-in-out infinite;
}
.scn-the-avenger-speaks .shadow-layer {
  position: absolute; inset: 10% 0 0 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%);
}
@keyframes avs-window { 0% { opacity:.5; filter: blur(2px); } 50% { opacity:.8; filter: blur(1px); } 100% { opacity:.6; filter: blur(3px); } }
@keyframes avs-lamp-glow { 0% { box-shadow: 0 0 15px 5px #906030; } 50% { box-shadow: 0 0 28px 10px #c08040, 0 0 50px 20px rgba(192,128,64,.3); } 100% { box-shadow: 0 0 18px 6px #906030; } }
@keyframes avs-sit { 0%,100% { transform: translateY(0) rotate(-.5deg); } 33% { transform: translateY(-2px) rotate(.5deg); } 66% { transform: translateY(0) rotate(0); } }
@keyframes avs-stand { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-.5deg); } 75% { transform: translateY(-2px) rotate(1.5deg); } }

.scn-the-execution {
  background:
    linear-gradient(180deg, #1a1620 0%, #2a2030 40%, #3a2a30 100%),
    radial-gradient(ellipse at 40% 50%, #4a3a30 0%, transparent 60%);
}
.scn-the-execution .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2030 0%, #1a1620 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}
.scn-the-execution .wall-shadow {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(0,0,0,.4) 0%, transparent 100%);
  transform: skewX(-10deg);
}
.scn-the-execution .woman-body {
  position: absolute; bottom: 22%; left: 28%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: exe-woman 8s ease-in-out infinite;
}
.scn-the-execution .woman-arm {
  position: absolute; bottom: 44%; left: 26%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c10 100%);
  border-radius: 60% 20% 20% 60%;
  transform-origin: 100% 50%;
  animation: exe-arm 2s ease-in-out infinite;
}
.scn-the-execution .falling-man {
  position: absolute; bottom: 20%; left: 48%; width: 34px; height: 40px;
  background: linear-gradient(180deg, #0e0c10 0%, #1a1820 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: exe-fall 4s ease-in-out infinite;
}
.scn-the-execution .muzzle-flash {
  position: absolute; bottom: 48%; left: 24%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffa040;
  animation: exe-flash 0.15s ease-in-out infinite;
}
.scn-the-execution .spark-trail {
  position: absolute; bottom: 48%; left: 24%; width: 2px; height: 30px;
  background: linear-gradient(180deg, #ffd080 0%, transparent 100%);
  transform-origin: bottom center;
  animation: exe-spark 0.3s linear infinite;
}
@keyframes exe-woman { 0%,100% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(0) rotate(0); } }
@keyframes exe-arm { 0%,100% { transform: rotate(-10deg) scaleX(1); } 25% { transform: rotate(-20deg) scaleX(1.05); } 50% { transform: rotate(-5deg) scaleX(1); } 75% { transform: rotate(-15deg) scaleX(0.95); } }
@keyframes exe-fall { 0%,100% { transform: rotate(0deg) ; } 50% { transform: rotate(20deg) translateX(8px); } }
@keyframes exe-flash { 0%,100% { opacity:0; } 30% { opacity:1; } 70% { opacity:0.8; } }
@keyframes exe-spark { 0% { opacity:1; transform: translateY(0) scaleY(1); } 100% { opacity:0; transform: translateY(-20px) scaleY(0.5); } }

.scn-holmes-and-watson-escape {
  background:
    linear-gradient(180deg, #0c0a10 0%, #141420 40%, #202030 100%),
    radial-gradient(ellipse at 70% 50%, #1a1a28 0%, transparent 60%);
}
.scn-holmes-and-watson-escape .dark-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #141420 0%, #0c0a10 100%);
}
.scn-holmes-and-watson-escape .window-glow-dim {
  position: absolute; top: 20%; right: 10%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, rgba(180,160,100,.15) 0%, transparent 70%);
  border-radius: 10% / 20%;
  animation: hwe-window 7s ease-in-out infinite alternate;
}
.scn-holmes-and-watson-escape .holmes-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hwe-holmes 5s ease-in-out infinite;
}
.scn-holmes-and-watson-escape .watson-silhouette {
  position: absolute; bottom: 20%; left: 28%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #14121a 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hwe-watson 5s ease-in-out infinite reverse;
}
.scn-holmes-and-watson-escape .grip-hand {
  position: absolute; bottom: 42%; left: 32%; width: 10px; height: 8px;
  background: #1a1820; border-radius: 40% 20% 40% 20%;
  transform-origin: 100% 50%;
  animation: hwe-grip 2s ease-in-out infinite;
}
.scn-holmes-and-watson-escape .restrained-wrist {
  position: absolute; bottom: 40%; left: 26%; width: 6px; height: 12px;
  background: #1a1820; border-radius: 30% 30% 20% 20%;
  transform-origin: 50% 0%;
  animation: hwe-wrist 2s ease-in-out infinite reverse;
}
@keyframes hwe-window { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.2; } }
@keyframes hwe-holmes { 0%,100% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(0) rotate(0); } }
@keyframes hwe-watson { 0%,100% { transform: translateY(0) rotate(1deg); } 33% { transform: translateY(-1px) rotate(-1deg); } 66% { transform: translateY(0) rotate(0); } }
@keyframes hwe-grip { 0%,100% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(-5deg) scaleX(1.1); } 75% { transform: rotate(5deg) scaleX(0.9); } }
@keyframes hwe-wrist { 0%,100% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(-5deg) scaleY(0.9); } 75% { transform: rotate(5deg) scaleY(1.1); } }

.scn-chase-and-escape {
  background:
    linear-gradient(180deg, #1a1a30 0%, #2a2a40 30%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #0a0a14 0%, transparent 70%);
}
.scn-chase-and-escape .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #141430 0%, #2a2a40 100%);
  animation: cae-sky 15s ease-in-out infinite alternate;
}
.scn-chase-and-escape .garden-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a20 0%, #1a2a10 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-chase-and-escape .hedge {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 4%;
  background: linear-gradient(180deg, #2a3a20 0%, #1a2a10 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 4px 6px rgba(0,0,0,.4);
  animation: cae-hedge 8s ease-in-out infinite alternate;
}
.scn-chase-and-escape .lit-house {
  position: absolute; bottom: 28%; right: 5%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #4a4a2a 0%, #3a3a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 0 40px 20px rgba(255,200,100,.3), inset 0 0 40px #ffe080;
  animation: cae-house 12s ease-in-out infinite;
}
.scn-chase-and-escape .runner-fore {
  position: absolute; bottom: 20%; left: 20%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cae-run 0.8s ease-in-out infinite;
}
.scn-chase-and-escape .runner-back {
  position: absolute; bottom: 22%; left: 35%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #181620 0%, #0e0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cae-run 0.9s ease-in-out infinite reverse;
}
.scn-chase-and-escape .light-beam {
  position: absolute; bottom: 30%; right: 20%; width: 120px; height: 100px;
  background: linear-gradient(135deg, rgba(255,200,100,.15) 0%, transparent 60%);
  transform-origin: bottom right;
  animation: cae-beam 4s ease-in-out infinite alternate;
}
@keyframes cae-sky { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes cae-hedge { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } }
@keyframes cae-house { 0%,100% { box-shadow: 0 0 30px 15px rgba(255,200,100,.2); } 50% { box-shadow: 0 0 50px 25px rgba(255,200,100,.4); } }
@keyframes cae-run { 0%,100% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(4px) rotate(5deg); } 50% { transform: translateX(8px) rotate(-4deg); } 75% { transform: translateX(12px) rotate(4deg); } }
@keyframes cae-beam { 0% { opacity:.3; transform: rotate(-5deg) scaleX(1); } 100% { opacity:.7; transform: rotate(5deg) scaleX(1.2); } }

/* --- watson-faints --- */
.scn-watson-faints {
  background:
    linear-gradient(135deg, #e8dcc8 30%, #c4b49a 60%, #a88e70 100%),
    radial-gradient(ellipse at 30% 60%, #f0e6d0 0%, transparent 70%);
}
.scn-watson-faints .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e0d4bc 0%, #cfc2a8 100%); }
.scn-watson-faints .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a88e70 0%, #7a6348 100%); }
.scn-watson-faints .window { position:absolute; top:18%; left:65%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 30%, #fff8e8 0%, #c8b080 70%); border:6px solid #8a7050; border-radius:4px; box-shadow: 0 0 30px 10px rgba(255,230,170,.5); animation: wf-window 4s ease-in-out infinite alternate; }
.scn-watson-faints .mist { position:absolute; border-radius:50%; filter:blur(8px); opacity:0.5; }
.scn-watson-faints .mist-a { top:10%; left:0; width:150px; height:150px; background:rgba(200,190,180,0.3); animation: wf-mist-a 5s ease-in-out infinite alternate; }
.scn-watson-faints .mist-b { top:40%; right:10%; width:120px; height:120px; background:rgba(180,170,160,0.25); animation: wf-mist-b 7s ease-in-out infinite alternate-reverse; }
.scn-watson-faints .chair { position:absolute; bottom:22%; left:28%; width:50px; height:60px; background: linear-gradient(180deg, #6a5230 0%, #3a2a15 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-watson-faints .figure { position:absolute; bottom:18%; left:25%; width:30px; height:65px; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: wf-fall 2s ease-in-out infinite alternate; }
.scn-watson-faints .glow { position:absolute; bottom:20%; left:30%; width:40px; height:40px; background:radial-gradient(circle, rgba(240,230,200,0.4) 0%, transparent 70%); animation: wf-glow 3s ease-in-out infinite alternate; }
@keyframes wf-window { 0% { box-shadow: 0 0 20px 5px rgba(255,230,170,.3); } 50% { box-shadow: 0 0 40px 15px rgba(255,230,170,.6); } 100% { box-shadow: 0 0 25px 8px rgba(255,230,170,.4); } }
@keyframes wf-mist-a { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 50% { transform: translate(30px,-20px) scale(1.2); opacity:0.6; } 100% { transform: translate(-10px,10px) scale(0.9); opacity:0.2; } }
@keyframes wf-mist-b { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:0.2; } 50% { transform: translate(-40px,30px) rotate(20deg) scale(1.3); opacity:0.5; } 100% { transform: translate(20px,-10px) rotate(-10deg) scale(0.8); opacity:0.3; } }
@keyframes wf-fall { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(8deg) translateY(-2px); } 100% { transform: translateX(-5px) rotate(-5deg) translateY(0); } }
@keyframes wf-glow { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

/* --- reunion-emotion --- */
.scn-reunion-emotion {
  background:
    linear-gradient(120deg, #f0e6d0 40%, #d4c4a8 75%, #b8a080 100%),
    radial-gradient(ellipse at 50% 80%, #d4b888 0%, transparent 60%);
}
.scn-reunion-emotion .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8dcc4 0%, #d6c6ac 100%); }
.scn-reunion-emotion .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a080 0%, #806848 100%); }
.scn-reunion-emotion .fireplace-glow { position:absolute; bottom:30%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #f0a050 0%, #d08030 40%, #a06020 70%, transparent 80%); border-radius: 20% 20% 50% 50%; box-shadow: 0 0 60px 20px rgba(240,160,80,.5); animation: re-fire 4s ease-in-out infinite alternate; }
.scn-reunion-emotion .figure-left { position:absolute; bottom:28%; left:32%; width:35px; height:70px; background: linear-gradient(180deg, #2a2018 0%, #16100a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: re-embrace-left 3s ease-in-out infinite; }
.scn-reunion-emotion .figure-right { position:absolute; bottom:28%; left:38%; width:35px; height:70px; background: linear-gradient(180deg, #2a2018 0%, #16100a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: re-embrace-right 3s ease-in-out infinite; }
.scn-reunion-emotion .embrace-arm { position:absolute; bottom:45%; left:34%; width:40px; height:10px; background:#2a2018; border-radius:50%; transform: rotate(-20deg); animation: re-arm 3s ease-in-out infinite; }
.scn-reunion-emotion .window { position:absolute; top:15%; right:10%; width:25%; height:35%; background: radial-gradient(ellipse at 40% 30%, #fff8e0 0%, #d4b880 80%); border:5px solid #7a6348; border-radius:4px; box-shadow: 0 0 30px 8px rgba(255,230,170,.4); animation: re-window 6s ease-in-out infinite alternate; }
.scn-reunion-emotion .shadow { position:absolute; bottom:25%; left:25%; width:100px; height:15px; background:rgba(50,30,20,0.3); border-radius:50%; filter:blur(6px); }
@keyframes re-fire { 0% { box-shadow: 0 0 40px 10px rgba(240,160,80,.4); opacity:0.7; } 50% { box-shadow: 0 0 80px 30px rgba(255,180,100,.7); opacity:1; } 100% { box-shadow: 0 0 50px 15px rgba(240,160,80,.5); opacity:0.8; } }
@keyframes re-embrace-left { 0% { transform: translateX(0) rotate(0deg) translateY(0); } 50% { transform: translateX(3px) rotate(-3deg) translateY(-1px); } 100% { transform: translateX(-2px) rotate(2deg) translateY(0); } }
@keyframes re-embrace-right { 0% { transform: translateX(0) rotate(0deg) translateY(0); } 50% { transform: translateX(-3px) rotate(3deg) translateY(-1px); } 100% { transform: translateX(2px) rotate(-2deg) translateY(0); } }
@keyframes re-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg) scaleY(1.05); } 100% { transform: rotate(-20deg); } }
@keyframes re-window { 0% { box-shadow: 0 0 20px 5px rgba(255,230,170,.3); } 50% { box-shadow: 0 0 50px 15px rgba(255,230,170,.6); } 100% { box-shadow: 0 0 30px 8px rgba(255,230,170,.4); } }

/* --- reunion-assurance --- */
.scn-reunion-assurance {
  background:
    linear-gradient(135deg, #ede4d0 30%, #d4c4a8 70%, #b89c78 100%),
    radial-gradient(ellipse at 60% 40%, #f0e6d0 0%, transparent 70%);
}
.scn-reunion-assurance .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e8dcc4 0%, #d0c0a8 100%); }
.scn-reunion-assurance .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b89c78 0%, #8a7050 100%); }
.scn-reunion-assurance .window { position:absolute; top:12%; left:72%; width:22%; height:40%; background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #d0b880 80%); border:5px solid #7a6348; border-radius:4px; box-shadow: 0 0 25px 6px rgba(255,230,170,.4); animation: ra-window 8s ease-in-out infinite alternate; }
.scn-reunion-assurance .table { position:absolute; bottom:18%; left:50%; width:80px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5230 0%, #4a3820 100%); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-reunion-assurance .chair-left { position:absolute; bottom:16%; left:30%; width:35px; height:50px; background: linear-gradient(180deg, #5a4228 0%, #3a2a18 100%); border-radius: 10% 10% 5% 5%; }
.scn-reunion-assurance .chair-right { position:absolute; bottom:16%; right:30%; width:35px; height:50px; background: linear-gradient(180deg, #5a4228 0%, #3a2a18 100%); border-radius: 10% 10% 5% 5%; }
.scn-reunion-assurance .figure-holmes { position:absolute; bottom:20%; left:40%; width:28px; height:65px; background: linear-gradient(180deg, #2a2018 0%, #14100a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ra-holmes 4s ease-in-out infinite; }
.scn-reunion-assurance .figure-watson { position:absolute; bottom:20%; right:40%; width:28px; height:65px; background: linear-gradient(180deg, #2a2018 0%, #14100a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ra-watson 4s ease-in-out infinite; }
.scn-reunion-assurance .cigarette-smoke { position:absolute; bottom:50%; left:45%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,0.3) 0%, transparent 70%); filter:blur(4px); animation: ra-smoke 5s ease-in-out infinite alternate; }
@keyframes ra-window { 0% { box-shadow: 0 0 15px 3px rgba(255,230,170,.3); } 50% { box-shadow: 0 0 40px 12px rgba(255,230,170,.6); } 100% { box-shadow: 0 0 25px 6px rgba(255,230,170,.4); } }
@keyframes ra-holmes { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ra-watson { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-2deg) scale(1.01); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ra-smoke { 0% { opacity:0.2; transform: translateY(0) scale(1); } 50% { opacity:0.5; transform: translateY(-10px) scale(1.5); } 100% { opacity:0.1; transform: translateY(-20px) scale(2); } }

/* --- reunion-talk --- */
.scn-reunion-talk {
  background:
    linear-gradient(150deg, #f0e6d0 30%, #d4c4a8 65%, #b89c78 100%),
    radial-gradient(ellipse at 40% 50%, #e8dcc4 0%, transparent 60%);
}
.scn-reunion-talk .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e8dcc4 0%, #d0c0a8 100%); }
.scn-reunion-talk .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b89c78 0%, #8a7050 100%); }
.scn-reunion-talk .window { position:absolute; top:10%; right:10%; width:20%; height:35%; background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #c8b080 80%); border:5px solid #7a6348; border-radius:4px; box-shadow: 0 0 30px 8px rgba(255,230,170,.4); animation: rt-window 7s ease-in-out infinite alternate; }
.scn-reunion-talk .table { position:absolute; bottom:20%; left:50%; width:90px; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5230 0%, #4a3820 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-reunion-talk .figure-left { position:absolute; bottom:22%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #2a2018 0%, #14100a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: rt-left 4s ease-in-out infinite; }
.scn-reunion-talk .figure-right { position:absolute; bottom:22%; right:30%; width:30px; height:60px; background: linear-gradient(180deg, #2a2018 0%, #14100a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: rt-right 4s ease-in-out infinite; }
.scn-reunion-talk .cigarette-glow { position:absolute; bottom:52%; left:58%; width:4px; height:4px; background:radial-gradient(circle, #ff8800 0%, #cc5500 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 12px 6px rgba(255,136,0,0.6); animation: rt-glow 2s ease-in-out infinite alternate; }
.scn-reunion-talk .smoke-a { position:absolute; bottom:55%; left:57%; width:15px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,0.25) 0%, transparent 70%); filter:blur(5px); animation: rt-smoke-a 6s ease-in-out infinite; }
.scn-reunion-talk .smoke-b { position:absolute; bottom:55%; left:57%; width:12px; height:25px; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,0.2) 0%, transparent 70%); filter:blur(4px); animation: rt-smoke-b 7s ease-in-out infinite 1s; }
@keyframes rt-window { 0% { box-shadow: 0 0 20px 5px rgba(255,230,170,.3); } 50% { box-shadow: 0 0 50px 15px rgba(255,230,170,.7); } 100% { box-shadow: 0 0 30px 8px rgba(255,230,170,.4); } }
@keyframes rt-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes rt-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes rt-glow { 0% { box-shadow: 0 0 8px 3px rgba(255,136,0,0.4); opacity:0.7; } 50% { box-shadow: 0 0 20px 10px rgba(255,136,0,0.8); opacity:1; } 100% { box-shadow: 0 0 10px 4px rgba(255,136,0,0.5); opacity:0.8; } }
@keyframes rt-smoke-a { 0% { opacity:0.1; transform: translateY(0) scale(1); } 50% { opacity:0.4; transform: translateY(-15px) scale(1.8); } 100% { opacity:0; transform: translateY(-30px) scale(2.5); } }
@keyframes rt-smoke-b { 0% { opacity:0.1; transform: translateY(0) scale(1); } 50% { opacity:0.3; transform: translateY(-10px) scale(1.5); } 100% { opacity:0; transform: translateY(-25px) scale(2.2); } }

/* inn-opposite */
.scn-inn-opposite { background: linear-gradient(180deg, #2a1e12 0%, #3d2c1a 60%, #1f140c 100%), radial-gradient(ellipse at 50% 100%, #2a1e12 0%, transparent 70%); }
.scn-inn-opposite .window-frame { position:absolute; inset:15% 15% 25% 15%; border:6px solid #4a3220; background:#1f140c; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.6); animation:io-frame 12s ease-in-out infinite alternate; }
.scn-inn-opposite .window-glass { position:absolute; inset:18% 18% 28% 18%; background:linear-gradient(135deg, rgba(180,140,80,.2) 0%, rgba(100,70,40,.4) 100%); border-radius:2px; box-shadow:inset 0 0 30px rgba(200,160,100,.1); animation:io-glass 5s ease-in-out infinite alternate; }
.scn-inn-opposite .outside-wall { position:absolute; inset:18% 18% 28% 18%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:2px; opacity:.7; animation:io-wall 20s ease-in-out infinite alternate; }
.scn-inn-opposite .street-lamp { position:absolute; bottom:30%; left:35%; width:6px; height:24px; background:#4a3a2a; border-radius:2px 2px 0 0; box-shadow:0 0 30px 10px rgba(255,200,100,.5), 0 0 60px 20px rgba(255,200,100,.2); animation:io-lamp 4s ease-in-out infinite alternate; }
.scn-inn-opposite .figure { position:absolute; bottom:15%; right:22%; width:12px; height:35px; background:linear-gradient(180deg, #1a140e 0%, #0e0a06 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:io-figure 8s ease-in-out infinite; }
.scn-inn-opposite .curtain { position:absolute; top:15%; width:20%; height:60%; background:linear-gradient(180deg, #5a3a2a 0%, #3a2216 100%); border-radius:0 40% 40% 0 / 0 20% 20% 0; filter:blur(1px); }
.scn-inn-opposite .curtain.left { left:15%; transform-origin:left center; animation:io-curtain-l 15s ease-in-out infinite alternate; }
.scn-inn-opposite .curtain.right { right:15%; transform-origin:right center; animation:io-curtain-r 15s ease-in-out infinite alternate; }
@keyframes io-frame { 0% { filter:brightness(1); } 50% { filter:brightness(1.05); } 100% { filter:brightness(.95); } }
@keyframes io-glass { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes io-wall { 0% { opacity:.6; } 50% { opacity:.75; } 100% { opacity:.65; } }
@keyframes io-lamp { 0% { box-shadow:0 0 25px 8px rgba(255,200,100,.4), 0 0 50px 15px rgba(255,200,100,.15); } 50% { box-shadow:0 0 35px 12px rgba(255,200,100,.6), 0 0 70px 25px rgba(255,200,100,.25); } 100% { box-shadow:0 0 20px 6px rgba(255,200,100,.35), 0 0 40px 10px rgba(255,200,100,.1); } }
@keyframes io-figure { 0%,100% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(3px) rotate(1deg); } 50% { transform:translateX(0) rotate(0); } 75% { transform:translateX(-3px) rotate(-1deg); } }
@keyframes io-curtain-l { 0% { transform:scaleX(1); } 50% { transform:scaleX(.9); } 100% { transform:scaleX(1.05); } }
@keyframes io-curtain-r { 0% { transform:scaleX(1); } 50% { transform:scaleX(1.1); } 100% { transform:scaleX(.95); } }

/* cold-supper */
.scn-cold-supper { background: linear-gradient(180deg, #1a1410 0%, #2a1e16 50%, #0e0a06 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%); }
.scn-cold-supper .table { position:absolute; bottom:20%; left:10%; right:10%; height:12%; background:linear-gradient(180deg, #4a3220 0%, #2a1a10 100%); border-radius:4px; box-shadow:0 -4px 10px rgba(0,0,0,.5); animation:cs-table 20s ease-in-out infinite alternate; }
.scn-cold-supper .plate { position:absolute; bottom:22%; left:40%; width:30px; height:6px; background:radial-gradient(ellipse, #6a5a4a 0%, #3a2a1a 100%); border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,.4); animation:cs-plate 15s ease-in-out infinite alternate; }
.scn-cold-supper .candle { position:absolute; bottom:22%; left:52%; width:4px; height:20px; background:linear-gradient(180deg, #e8d4a0 0%, #b89860 70%, #6a4a2a 100%); border-radius:2px; box-shadow:0 0 10px 3px rgba(255,200,100,.5), 0 0 20px 6px rgba(255,200,100,.2); animation:cs-candle 3s ease-in-out infinite alternate; }
.scn-cold-supper .pipe { position:absolute; bottom:24%; left:30%; width:20px; height:4px; background:#4a3a2a; border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,.4); animation:cs-pipe 8s ease-in-out infinite; }
.scn-cold-supper .chair { position:absolute; bottom:20%; left:15%; width:20px; height:30px; background:linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%); border-radius:4px; box-shadow:4px 0 6px rgba(0,0,0,.4); animation:cs-chair 12s ease-in-out infinite alternate; }
.scn-cold-supper .fireplace { position:absolute; bottom:10%; left:50%; width:60px; height:40px; transform:translateX(-50%); background:linear-gradient(180deg, #2a1e14 0%, #1a100a 100%); border-radius:10% 10% 4% 4% / 30% 30% 10% 10%; box-shadow:inset 0 0 30px rgba(0,0,0,.7); animation:cs-fireplace 25s ease-in-out infinite alternate; }
@keyframes cs-table { 0% { filter:brightness(1); } 50% { filter:brightness(1.05); } 100% { filter:brightness(.95); } }
@keyframes cs-plate { 0% { transform:translateY(0); } 50% { transform:translateY(1px); } 100% { transform:translateY(-1px); } }
@keyframes cs-candle { 0% { opacity:.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.1); } 100% { opacity:.8; transform:scaleY(.9); } }
@keyframes cs-pipe { 0%,100% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(2px) rotate(2deg); } }
@keyframes cs-chair { 0% { transform:skewX(-2deg); } 50% { transform:skewX(0deg); } 100% { transform:skewX(2deg); } }
@keyframes cs-fireplace { 0% { filter:brightness(1); } 50% { box-shadow: inset 0 0 40px rgba(200,60,20,.3); } 100% { filter:brightness(.9); } }

/* doctor's-journey */
.scn-doctors-journey { background: linear-gradient(180deg, #141a1e 0%, #1e2a2e 40%, #0a0e10 100%), radial-gradient(ellipse at 70% 90%, #2a3a3e 0%, transparent 60%); }
.scn-doctors-journey .road { position:absolute; bottom:5%; left:0; right:0; height:30%; background:linear-gradient(180deg, #3a3a2a 0%, #1a1a14 100%); border-radius:30% 30% 0 0 / 40% 40% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.6); animation:dj-road 8s linear infinite; }
.scn-doctors-journey .figure.doc { position:absolute; bottom:12%; left:15%; width:14px; height:38px; background:linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:dj-doc 6s ease-in-out infinite; }
.scn-doctors-journey .carriage { position:absolute; bottom:10%; left:60%; width:60px; height:40px; background:linear-gradient(180deg, #3a3026 0%, #1a1410 100%); border-radius:20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow:0 4px 8px rgba(0,0,0,.5); animation:dj-carriage 14s ease-in-out infinite; }
.scn-doctors-journey .distant-house { position:absolute; bottom:10%; right:5%; width:40px; height:50px; background:linear-gradient(180deg, #2a2a1e 0%, #1a1a12 100%); border-radius:4px; box-shadow:0 0 20px rgba(100,80,60,.2); animation:dj-house 20s ease-in-out infinite alternate; }
.scn-doctors-journey .tree { position:absolute; bottom:8%; width:30px; height:80px; background:linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius:40% 40% 20% 20% / 60% 60% 40% 40%; filter:blur(1px); }
.scn-doctors-journey .tree.left { left:5%; animation:dj-tree-l 30s ease-in-out infinite alternate; }
.scn-doctors-journey .tree.right { right:10%; height:60px; animation:dj-tree-r 25s ease-in-out infinite alternate; }
.scn-doctors-journey .sky-moon { position:absolute; top:10%; right:20%; width:30px; height:30px; background:radial-gradient(circle, #d0d8de 0%, #8a96a0 80%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 15px rgba(160,180,200,.3); animation:dj-moon 50s linear infinite; }
@keyframes dj-road { 0% { background-position:0 0; } 100% { background-position:20px 0; } }
@keyframes dj-doc { 0%,100% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(8px) rotate(2deg); } 50% { transform:translateX(16px) rotate(0); } 75% { transform:translateX(8px) rotate(-2deg); } }
@keyframes dj-carriage { 0%,100% { transform:translateX(0) rotate(-1deg); } 50% { transform:translateX(-10px) rotate(1deg); } }
@keyframes dj-house { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.7; } }
@keyframes dj-tree-l { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes dj-tree-r { 0% { transform:translateY(0) rotate(1deg); } 50% { transform:translateY(-3px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes dj-moon { 0% { transform:translateX(0); } 100% { transform:translateX(-100vw); } }

/* friendly-native */
.scn-friendly-native { background: linear-gradient(180deg, #1a221a 0%, #2a342a 50%, #0e120e 100%), radial-gradient(ellipse at 50% 100%, #2a342a 0%, transparent 70%); }
.scn-friendly-native .inn-building { position:absolute; bottom:30%; left:10%; right:10%; height:50%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:8% 8% 4% 4% / 20% 20% 10% 10%; box-shadow:0 -10px 30px rgba(0,0,0,.5); animation:fn-inn 18s ease-in-out infinite alternate; }
.scn-friendly-native .yard-ground { position:absolute; bottom:0; left:5%; right:5%; height:20%; background:linear-gradient(180deg, #3a4a32 0%, #1a2a14 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; box-shadow:inset 0 6px 12px rgba(0,0,0,.4); animation:fn-yard 25s ease-in-out infinite alternate; }
.scn-friendly-native .figure.native { position:absolute; bottom:12%; left:35%; width:16px; height:42px; background:linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:fn-native 6s ease-in-out infinite; }
.scn-friendly-native .figure.watson { position:absolute; bottom:12%; left:50%; width:14px; height:38px; background:linear-gradient(180deg, #1a1e16 0%, #0e120a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:fn-watson 6s ease-in-out infinite; }
.scn-friendly-native .fence { position:absolute; bottom:15%; left:20%; right:20%; height:8px; background:linear-gradient(90deg, #3a2a1a 0%, #2a1a0e 50%, #3a2a1a 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.3); animation:fn-fence 20s ease-in-out infinite; }
.scn-friendly-native .tree { position:absolute; bottom:10%; left:10%; width:40px; height:70px; background:linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; filter:blur(1px); animation:fn-tree 30s ease-in-out infinite alternate; }
@keyframes fn-inn { 0% { filter:brightness(1); } 50% { filter:brightness(1.04); } 100% { filter:brightness(.96); } }
@keyframes fn-yard { 0% { background-position:0 0; } 50% { background-position:5px 0; } 100% { background-position:0 0; } }
@keyframes fn-native { 0%,100% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(4px) rotate(2deg); } 50% { transform:translateX(0) rotate(0); } 75% { transform:translateX(-4px) rotate(-2deg); } }
@keyframes fn-watson { 0%,100% { transform:translateX(0) rotate(1deg); } 25% { transform:translateX(-3px) rotate(-1deg); } 50% { transform:translateX(0) rotate(0); } 75% { transform:translateX(3px) rotate(1deg); } }
@keyframes fn-fence { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes fn-tree { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-4px) rotate(1deg); } 100% { transform:translateY(0) rotate(0); } }

.scn-holmes-description {
  background: linear-gradient(135deg, #c8a06a 0%, #6b4226 100%), radial-gradient(ellipse at 70% 90%, #f0c080 0%, transparent 60%);
}
.scn-holmes-description .lamp {
  position:absolute; top:8%; left:50%; width:30px; height:40px; transform:translateX(-50%);
  background: radial-gradient(circle, #ffe0a0 0%, #d09040 70%, transparent 90%);
  border-radius: 10% 10% 50% 50%; box-shadow: 0 0 50px 20px rgba(240,180,80,0.5);
  animation: hd-lamp 3s ease-in-out infinite alternate;
}
.scn-holmes-description .table {
  position:absolute; bottom:20%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, #7a5230 0%, #4a2e1a 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-holmes-description .books {
  position:absolute; bottom:30%; left:30%; width:80px; height:30px;
  background: linear-gradient(90deg, #a04020 0%, #c06030 30%, #8a5030 70%, #b04828 100%);
  border-radius: 2px; box-shadow: 2px 3px 6px rgba(0,0,0,0.5);
  animation: hd-books 12s ease-in-out infinite;
}
.scn-holmes-description .figure {
  position:absolute; bottom:28%; left:42%; width:28px; height:70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: hd-figure 5s ease-in-out infinite;
}
.scn-holmes-description .pile {
  position:absolute; bottom:28%; left:55%; width:40px; height:25px;
  background: radial-gradient(ellipse at 50% 60%, #d0d0d0 0%, #a0a0a0 70%, #808080 100%);
  border-radius: 40% 40% 50% 50%; filter: blur(2px);
  animation: hd-pile 8s ease-in-out infinite alternate;
}
.scn-holmes-description .glow-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(240,180,80,0.3) 0%, transparent 70%);
  animation: hd-glow 4s ease-in-out infinite alternate;
}
@keyframes hd-lamp { 0%{opacity:0.8;transform:translateX(-50%) scaleY(1)} 50%{opacity:1;transform:translateX(-50%) scaleY(1.05) scaleX(0.95)} 100%{opacity:0.9;transform:translateX(-50%) scaleY(0.98)} }
@keyframes hd-books { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes hd-figure { 0%{transform:translateY(0) rotate(-2deg)} 40%{transform:translateY(-1px) rotate(1deg)} 70%{transform:translateY(0) rotate(-0.5deg)} 100%{transform:translateY(-1px) rotate(1.5deg)} }
@keyframes hd-pile { 0%{transform:scale(1) translateY(0)} 50%{transform:scale(1.02) translateY(-1px)} 100%{transform:scale(0.98) translateY(0)} }
@keyframes hd-glow { 0%{opacity:0.6} 50%{opacity:1} 100%{opacity:0.7} }

.scn-plan-for-night {
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 60%, #0e0e1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-plan-for-night .ceiling {
  position:absolute; top:0; left:0; right:0; height:10%;
  background: linear-gradient(180deg, #1e1e2e 0%, #12121a 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-plan-for-night .wall {
  position:absolute; inset:10% 0 20% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a28 100%);
}
.scn-plan-for-night .lamp {
  position:absolute; top:15%; left:50%; width:25px; height:30px; transform:translateX(-50%);
  background: radial-gradient(circle, #f0d080 0%, #c08030 60%, transparent 80%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 60px 15px rgba(200,140,60,0.6);
  animation: pfn-lamp 2s ease-in-out infinite alternate;
}
.scn-plan-for-night .tall-figure {
  position:absolute; bottom:20%; left:30%; width:22px; height:80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 35% 35% 25% 25% / 50% 50% 35% 35%;
  transform-origin: bottom center; animation: pfn-tall 6s ease-in-out infinite;
}
.scn-plan-for-night .short-figure {
  position:absolute; bottom:20%; right:30%; width:24px; height:60px;
  background: linear-gradient(180deg, #222238 0%, #121224 100%);
  border-radius: 40% 40% 30% 30% / 45% 45% 35% 35%;
  transform-origin: bottom center; animation: pfn-short 4s ease-in-out infinite;
}
.scn-plan-for-night .table-map {
  position:absolute; bottom:18%; left:40%; right:40%; height:8%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 3px 8px rgba(0,0,0,0.7);
  animation: pfn-map 8s ease-in-out infinite alternate;
}
.scn-plan-for-night .shadow {
  position:absolute; bottom:0; left:25%; right:25%; height:18%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: pfn-shadow 5s ease-in-out infinite alternate;
}
@keyframes pfn-lamp { 0%{opacity:0.7;transform:translateX(-50%) scale(0.95)} 50%{opacity:1;transform:translateX(-50%) scale(1.05)} 100%{opacity:0.8;transform:translateX(-50%) scale(0.98)} }
@keyframes pfn-tall { 0%{transform:translateY(0) rotate(-0.5deg)} 35%{transform:translateY(-3px) rotate(0.8deg)} 70%{transform:translateY(0) rotate(-0.2deg)} 100%{transform:translateY(-1px) rotate(0.5deg)} }
@keyframes pfn-short { 0%{transform:translateY(0) rotate(0.5deg)} 45%{transform:translateY(-2px) rotate(-0.7deg)} 80%{transform:translateY(0) rotate(0.3deg)} 100%{transform:translateY(-1px) rotate(-0.4deg)} }
@keyframes pfn-map { 0%{opacity:0.9;transform:scale(1)} 50%{opacity:1;transform:scale(1.02)} 100%{opacity:0.95;transform:scale(0.98)} }
@keyframes pfn-shadow { 0%{opacity:0.4;transform:scaleY(1)} 50%{opacity:0.7;transform:scaleY(1.1)} 100%{opacity:0.5;transform:scaleY(0.95)} }

.scn-holmes-explains {
  background: linear-gradient(180deg, #8a5a2a 0%, #4a2a12 60%, #2a1a08 100%), radial-gradient(ellipse at 80% 70%, #c08040 0%, transparent 50%);
}
.scn-holmes-explains .hearth {
  position:absolute; bottom:10%; left:35%; right:35%; height:30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 0 6px 12px rgba(0,0,0,0.8);
}
.scn-holmes-explains .fire-glow {
  position:absolute; bottom:15%; left:45%; right:45%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, #f0a030 0%, #c06010 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 80px 30px rgba(200,80,20,0.5);
  animation: he-fire 2s ease-in-out infinite alternate;
}
.scn-holmes-explains .armchair-a {
  position:absolute; bottom:20%; left:15%; width:40px; height:50px;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
}
.scn-holmes-explains .armchair-b {
  position:absolute; bottom:20%; left:55%; width:40px; height:50px;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: -2px 4px 8px rgba(0,0,0,0.5);
}
.scn-holmes-explains .figure-a {
  position:absolute; bottom:22%; left:20%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: he-fig-a 5s ease-in-out infinite;
}
.scn-holmes-explains .figure-b {
  position:absolute; bottom:22%; left:60%; width:20px; height:50px;
  background: linear-gradient(180deg, #22222a 0%, #121218 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: he-fig-b 7s ease-in-out infinite;
}
.scn-holmes-explains .smoke {
  position:absolute; top:10%; left:45%; width:12px; height:30px;
  background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, transparent 100%);
  filter: blur(4px); border-radius: 50%;
  animation: he-smoke 8s ease-out infinite;
}
@keyframes he-fire { 0%{opacity:0.7;transform:scaleY(0.95)} 50%{opacity:1;transform:scaleY(1.1)} 100%{opacity:0.8;transform:scaleY(1)} }
@keyframes he-fig-a { 0%{transform:translateY(0) rotate(-1deg)} 40%{transform:translateY(-2px) rotate(0.5deg)} 70%{transform:translateY(0) rotate(-0.3deg)} 100%{transform:translateY(-1px) rotate(0.8deg)} }
@keyframes he-fig-b { 0%{transform:translateY(0) rotate(0.5deg)} 35%{transform:translateY(-1px) rotate(-0.8deg)} 65%{transform:translateY(0) rotate(0.2deg)} 100%{transform:translateY(-2px) rotate(-0.5deg)} }
@keyframes he-smoke { 0%{transform:translateY(0) scale(1);opacity:0.3} 50%{transform:translateY(-20px) scale(1.5);opacity:0.1} 100%{transform:translateY(-40px) scale(2);opacity:0} }

.scn-moriarty-encounter {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #0e0e1a 100%), radial-gradient(ellipse at 30% 80%, #3a3a5a 0%, transparent 60%);
}
.scn-moriarty-encounter .doorway {
  position:absolute; top:5%; left:35%; right:35%; bottom:15%;
  background: linear-gradient(180deg, #0a0a12 0%, #12121e 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-moriarty-encounter .floor {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a26 100%);
}
.scn-moriarty-encounter .lamp {
  position:absolute; top:12%; left:20%; width:20px; height:25px;
  background: radial-gradient(circle, #f0d080 0%, #b08040 60%, transparent 80%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 60px 20px rgba(200,160,80,0.4);
  animation: me-lamp 3s ease-in-out infinite alternate;
}
.scn-moriarty-encounter .moriarty {
  position:absolute; top:15%; left:45%; width:18px; height:70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: me-moriarty 6s ease-in-out infinite;
}
.scn-moriarty-encounter .holmes {
  position:absolute; bottom:15%; left:25%; width:20px; height:60px;
  background: linear-gradient(180deg, #222238 0%, #121224 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: me-holmes 4s ease-in-out infinite;
}
.scn-moriarty-encounter .shadow-sharp {
  position:absolute; top:10%; left:40%; right:40%; bottom:15%;
  background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: me-shadow 5s ease-in-out infinite alternate;
}
@keyframes me-lamp { 0%{opacity:0.8;transform:scale(0.95)} 50%{opacity:1;transform:scale(1.05)} 100%{opacity:0.9;transform:scale(0.98)} }
@keyframes me-moriarty { 0%{transform:translateY(0) rotate(-1deg) scaleY(1)} 30%{transform:translateY(-2px) rotate(0.5deg) scaleY(1.02)} 60%{transform:translateY(0) rotate(-0.3deg) scaleY(0.98)} 100%{transform:translateY(-1px) rotate(0.8deg) scaleY(1)} }
@keyframes me-holmes { 0%{transform:translateY(0) rotate(0.5deg)} 40%{transform:translateY(-1px) rotate(-0.7deg)} 80%{transform:translateY(0) rotate(0.2deg)} 100%{transform:translateY(-2px) rotate(-0.5deg)} }
@keyframes me-shadow { 0%{opacity:0.3;transform:scaleX(1)} 50%{opacity:0.6;transform:scaleX(1.1)} 100%{opacity:0.4;transform:scaleX(0.95)} }

/* Scene: holmes-on-milverton (firelit, dark) */
.scn-holmes-on-milverton {
  background:
    radial-gradient(ellipse at 50% 100%, #3a1a0a 0%, transparent 60%),
    linear-gradient(180deg, #1a0a05 0%, #2a1005 30%, #4a200a 70%, #2a1005 100%);
}
.scn-holmes-on-milverton .hm1-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a0a05 0%, #1a0502 100%);
}
.scn-holmes-on-milverton .hm1-fire {
  position:absolute; bottom:10%; left:20%; width:60%; height:30%;
  background: radial-gradient(ellipse at 30% 50%, #ff6b35 0%, #b83a0a 40%, transparent 70%);
  filter: blur(12px); animation: hm1-fireglow 4s ease-in-out infinite alternate;
}
.scn-holmes-on-milverton .hm1-holmes {
  position:absolute; bottom:25%; left:30%; width:30px; height:80px;
  background: linear-gradient(180deg, #0d0602 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg); animation: hm1-fig 6s ease-in-out infinite;
}
.scn-holmes-on-milverton .hm1-watson {
  position:absolute; bottom:25%; left:50%; width:28px; height:72px;
  background: linear-gradient(180deg, #0d0602 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg); opacity:0.85; animation: hm1-fig 7s ease-in-out infinite 0.5s;
}
.scn-holmes-on-milverton .hm1-snake-shadow {
  position:absolute; bottom:30%; left:55%; width:80px; height:20px;
  background: rgba(0,0,0,0.6); border-radius: 50%;
  filter: blur(4px); animation: hm1-slither 4s ease-in-out infinite;
}
.scn-holmes-on-milverton .hm1-chair {
  position:absolute; bottom:22%; left:25%; width:40px; height:50px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform: rotate(10deg);
}
.scn-holmes-on-milverton .hm1-sparks {
  position:absolute; bottom:18%; left:18%; width:4px; height:4px;
  background: #ffa040; border-radius:50%; box-shadow: 0 0 8px 2px #ff6b35;
  animation: hm1-spark 3s ease-in-out infinite;
}
@keyframes hm1-fireglow {
  0% { opacity:0.6; transform: scaleX(0.8) scaleY(0.9); }
  50% { opacity:0.9; transform: scaleX(1.1) scaleY(1.05); }
  100% { opacity:0.7; transform: scaleX(0.85) scaleY(0.95); }
}
@keyframes hm1-fig {
  0% { transform: rotate(-5deg) translateY(0) }
  50% { transform: rotate(-3deg) translateY(-2px) }
  100% { transform: rotate(-5deg) translateY(0) }
}
@keyframes hm1-slither {
  0% { transform: translateX(0) rotate(0deg); width:80px; }
  50% { transform: translateX(10px) rotate(10deg); width:90px; height:18px; }
  100% { transform: translateX(0) rotate(0deg); width:80px; }
}
@keyframes hm1-spark {
  0%,100% { transform: translate(0,0) scale(0.8); opacity:0 }
  50% { transform: translate(5px,-8px) scale(1.2); opacity:0.8; }
}

/* Scene: holmes-on-lady-eva (firelit, dark) */
.scn-holmes-on-lady-eva {
  background:
    radial-gradient(ellipse at 40% 100%, #2a0a05 0%, transparent 50%),
    linear-gradient(180deg, #1a0502 0%, #1f0802 50%, #2a0a05 100%);
}
.scn-holmes-on-lady-eva .hm2-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #1a0502 0%, #2a0a05 70%, #1a0502 100%);
}
.scn-holmes-on-lady-eva .hm2-fire {
  position:absolute; bottom:5%; left:10%; width:50%; height:40%;
  background: radial-gradient(ellipse at 20% 80%, #ff6b35 0%, #b83a0a 40%, transparent 70%);
  filter: blur(10px); animation: hm2-glow 5s ease-in-out infinite alternate;
}
.scn-holmes-on-lady-eva .hm2-table {
  position:absolute; bottom:20%; left:35%; width:60px; height:8px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 100%);
  border-radius: 5px; box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(30deg);
}
.scn-holmes-on-lady-eva .hm2-letter {
  position:absolute; bottom:28%; left:38%; width:20px; height:25px;
  background: #d4a56a; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(8deg); animation: hm2-letter 8s ease-in-out infinite;
}
.scn-holmes-on-lady-eva .hm2-holmes-hand {
  position:absolute; bottom:32%; left:30%; width:12px; height:30px;
  background: linear-gradient(180deg, #1a0a05 0%, #0d0602 100%);
  border-radius: 30% 30% 10% 10%; transform: rotate(-20deg);
  animation: hm2-reach 6s ease-in-out infinite;
}
.scn-holmes-on-lady-eva .hm2-watson {
  position:absolute; bottom:25%; left:55%; width:26px; height:70px;
  background: linear-gradient(180deg, #0d0602 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg); opacity:0.8;
}
.scn-holmes-on-lady-eva .hm2-chairs {
  position:absolute; bottom:18%; left:28%; width:50px; height:40px;
  background: repeating-linear-gradient(90deg, #2a0a05 0px, #3a1a0a 2px, #2a0a05 4px);
  border-radius: 8% 8% 5% 5%; box-shadow: 0 6px 10px rgba(0,0,0,0.5);
}
@keyframes hm2-glow {
  0% { opacity:0.5; transform: scaleX(0.7); }
  50% { opacity:0.9; transform: scaleX(1.1); }
  100% { opacity:0.6; transform: scaleX(0.8); }
}
@keyframes hm2-letter {
  0%,100% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(6deg) translateY(-2px); }
}
@keyframes hm2-reach {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(-3px) rotate(2deg); }
  100% { transform: rotate(-20deg) translateX(0); }
}

/* Scene: milverton-enters (firelit, tense) */
.scn-milverton-enters {
  background:
    radial-gradient(ellipse at 40% 100%, #1f0802 0%, transparent 60%),
    linear-gradient(180deg, #0a0301 0%, #1a0502 40%, #2a0a05 100%);
}
.scn-milverton-enters .me-bg {
  position:absolute; inset:0; background: linear-gradient(90deg, #0a0301 0%, #1a0502 50%, #0a0301 100%);
}
.scn-milverton-enters .me-doorway {
  position:absolute; bottom:0; left:40%; width:80px; height:100%;
  background: #0a0301; border: 4px solid #2a0a05; border-bottom: none;
  border-radius: 8% 8% 0 0;
}
.scn-milverton-enters .me-milverton {
  position:absolute; bottom:0; left:42%; width:50px; height:80px;
  background: linear-gradient(180deg, #1a0a05 0%, #0d0602 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(0.9); animation: me-enter 5s ease-in-out infinite alternate;
  box-shadow: -6px 0 10px rgba(0,0,0,0.6);
}
.scn-milverton-enters .me-lamp-glow {
  position:absolute; bottom:50%; left:35%; width:20px; height:30px;
  background: radial-gradient(circle, #ffa040 0%, #b83a0a 60%, transparent 80%);
  filter: blur(6px); animation: me-lamp 3s ease-in-out infinite alternate;
}
.scn-milverton-enters .me-carriage-lamp {
  position:absolute; bottom:55%; left:30%; width:8px; height:14px;
  background: #ffa040; border-radius: 20%; box-shadow: 0 0 20px 6px #ff6b35;
  animation: me-lamp 4s ease-in-out infinite alternate-reverse;
}
.scn-milverton-enters .me-coat {
  position:absolute; bottom:10%; left:44%; width:30px; height:40px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 100%);
  border-radius: 0 0 40% 40%; transform: rotate(5deg);
  clip-path: polygon(0% 0%,100% 0%,90% 100%,10% 100%);
}
.scn-milverton-enters .me-shadow-cast {
  position:absolute; bottom:0; left:38%; width:60px; height:6px;
  background: rgba(0,0,0,0.7); filter: blur(3px);
  animation: me-shadow 5s ease-in-out infinite alternate;
}
@keyframes me-enter {
  0% { transform: scaleX(0.9) translateX(-10px); }
  50% { transform: scaleX(1) translateX(0); }
  100% { transform: scaleX(0.9) translateX(-5px); }
}
@keyframes me-lamp {
  0% { opacity:0.6; transform: scale(0.8); }
  50% { opacity:0.9; transform: scale(1.1); }
  100% { opacity:0.7; transform: scale(0.9); }
}
@keyframes me-shadow {
  0% { transform: scaleX(0.8); opacity:0.5; }
  50% { transform: scaleX(1.2); opacity:0.8; }
  100% { transform: scaleX(0.9); opacity:0.6; }
}

/* Scene: holmes-rebuffs-milverton (firelit, tense) */
.scn-holmes-rebuffs-milverton {
  background:
    radial-gradient(ellipse at 60% 100%, #3a1a0a 0%, transparent 60%),
    linear-gradient(180deg, #0a0301 0%, #1a0502 40%, #2a0a05 100%);
}
.scn-holmes-rebuffs-milverton .hr-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #0a0301 0%, #1a0502 70%, #0a0301 100%);
}
.scn-holmes-rebuffs-milverton .hr-fire {
  position:absolute; bottom:5%; right:10%; width:60%; height:42%;
  background: radial-gradient(ellipse at 70% 80%, #ff6b35 0%, #b83a0a 40%, transparent 70%);
  filter: blur(14px); animation: hr-glow 3s ease-in-out infinite alternate;
}
.scn-holmes-rebuffs-milverton .hr-holmes {
  position:absolute; bottom:20%; left:20%; width:32px; height:90px;
  background: linear-gradient(180deg, #0d0602 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg); animation: hr-stand 6s ease-in-out infinite;
}
.scn-holmes-rebuffs-milverton .hr-milverton {
  position:absolute; bottom:15%; left:45%; width:50px; height:65px;
  background: linear-gradient(180deg, #1a0a05 0%, #0d0602 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(0.9) rotate(5deg); animation: hr-sit 5s ease-in-out infinite alternate;
}
.scn-holmes-rebuffs-milverton .hr-chair {
  position:absolute; bottom:12%; left:42%; width:60px; height:45px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 10px rgba(0,0,0,0.5);
}
.scn-holmes-rebuffs-milverton .hr-handshake {
  position:absolute; bottom:30%; left:32%; width:20px; height:8px;
  background: #0d0602; border-radius: 30% 30% 10% 10%;
  transform: rotate(-30deg); animation: hr-hand 4s ease-in-out infinite;
  clip-path: polygon(0% 0%,100% 0%,80% 100%,20% 100%);
}
.scn-holmes-rebuffs-milverton .hr-hat-rack {
  position:absolute; bottom:15%; left:70%; width:10px; height:60px;
  background: #1a0a05; border-radius: 30%; transform: rotate(2deg);
  box-shadow: 0 8px 6px rgba(0,0,0,0.6);
}
@keyframes hr-glow {
  0% { opacity:0.5; transform: scaleX(0.8) scaleY(0.9); }
  50% { opacity:0.9; transform: scaleX(1.1) scaleY(1.0); }
  100% { opacity:0.6; transform: scaleX(0.85) scaleY(0.95); }
}
@keyframes hr-stand {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px) translateX(1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes hr-sit {
  0% { transform: scaleX(0.9) rotate(5deg) translateY(0); }
  50% { transform: scaleX(0.92) rotate(4deg) translateY(-1px); }
  100% { transform: scaleX(0.9) rotate(5deg) translateY(0); }
}
@keyframes hr-hand {
  0% { transform: rotate(-30deg) translateX(0); }
  50% { transform: rotate(-20deg) translateX(5px) translateY(-3px); }
  100% { transform: rotate(-30deg) translateX(0); }
}

.scn-professor-coram-household { background: linear-gradient(180deg, #f5e6d0 0%, #e8d3b8 30%, #d4bc9a 100%), radial-gradient(ellipse at 50% 20%, rgba(255,230,180,0.3) 0%, transparent 70%); }

.scn-professor-coram-household .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #eedcc5 0%, #d4bc9a 100%); border-bottom: 2px solid #b89a78; }
.scn-professor-coram-household .floor { position:absolute; bottom:0; width:100%; height:40%; background: linear-gradient(0deg, #7a5a3a 0%, #9c7a5a 40%, #b89878 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-professor-coram-household .fireplace { position:absolute; bottom:20%; left:10%; width:30%; height:40%; background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 30%, #6a4a2a 100%); border-radius: 12% 12% 6% 6%; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
.scn-professor-coram-household .fire { position:absolute; bottom:22%; left:16%; width:18%; height:25%; background: radial-gradient(circle at 50% 100%, #ffcc66 0%, #ff9933 40%, transparent 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #ffaa44, 0 0 60px 20px rgba(255,170,68,0.4); animation: pch-fire 2s ease-in-out infinite alternate; }
.scn-professor-coram-household .desk { position:absolute; bottom:15%; right:12%; width:20%; height:18%; background: linear-gradient(180deg, #8b6b4b 0%, #5a3a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-professor-coram-household .armchair { position:absolute; bottom:20%; left:45%; width:16%; height:22%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 2px 4px 10px rgba(0,0,0,0.3); animation: pch-sit 6s ease-in-out infinite; }
.scn-professor-coram-household .figure-pro { position:absolute; bottom:24%; left:48%; width:12%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: pch-walk 8s ease-in-out infinite; }
.scn-professor-coram-household .figure-maid { position:absolute; bottom:20%; right:18%; width:10%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 35% 35% / 55% 55% 30% 30%; transform-origin: bottom center; animation: pch-bustle 10s ease-in-out infinite; }
.scn-professor-coram-household .window { position:absolute; top:8%; right:22%; width:18%; height:30%; background: linear-gradient(135deg, #a0c4e0 0%, #c0dff0 40%, #fff 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 12px rgba(0,0,0,0.2); animation: pch-light 8s ease-in-out infinite alternate; }

@keyframes pch-fire { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.98); } }
@keyframes pch-sit { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pch-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-2deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes pch-bustle { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-3px) rotate(2deg); } 70% { transform: translateX(2px) rotate(-1deg); } }
@keyframes pch-light { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-secretary-willoughby-smith { background: linear-gradient(180deg, #e8d8c0 0%, #d4b898 30%, #b09070 100%), radial-gradient(ellipse at 50% 80%, rgba(255,200,120,0.4) 0%, transparent 70%); }

.scn-secretary-willoughby-smith .bg-room { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #c4a88c 0%, #dcc4a8 50%, #c4a88c 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-secretary-willoughby-smith .desk-top { position:absolute; bottom:20%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #8b6b4b 0%, #5a3a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-secretary-willoughby-smith .lamp { position:absolute; bottom:32%; left:40%; width:8%; height:18%; background: linear-gradient(180deg, #d0a060 0%, #a08040 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; transform-origin: bottom center; }
.scn-secretary-willoughby-smith .lamp-glow { position:absolute; bottom:40%; left:38%; width:24%; height:20%; background: radial-gradient(circle at 50% 0%, #fff0b0 0%, #ffe080 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px #ffdd88; animation: wsm-glow 3s ease-in-out infinite alternate; }
.scn-secretary-willoughby-smith .figure-scribe { position:absolute; bottom:16%; left:35%; width:14%; height:34%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wsm-write 2s ease-in-out infinite; }
.scn-secretary-willoughby-smith .paper { position:absolute; bottom:22%; left:32%; width:18%; height:8%; background: linear-gradient(135deg, #f8f0e0 0%, #e0d0b0 100%); border-radius: 2%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: wsm-paper 4s ease-in-out infinite; }
.scn-secretary-willoughby-smith .inkwell { position:absolute; bottom:22%; left:52%; width:6%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; }
.scn-secretary-willoughby-smith .chair { position:absolute; bottom:15%; left:30%; width:18%; height:16%; background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; }

@keyframes wsm-glow { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes wsm-write { 0%,100% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } }
@keyframes wsm-paper { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(0.5deg); } }

.scn-smith-killed { background: linear-gradient(180deg, #b09880 0%, #907060 30%, #5a4030 100%), radial-gradient(ellipse at 50% 90%, rgba(180,100,60,0.2) 0%, transparent 70%); }

.scn-smith-killed .bg-study { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #a08870 0%, #c0a888 50%, #a08870 100%); }
.scn-smith-killed .floor-dark { position:absolute; bottom:0; width:100%; height:35%; background: linear-gradient(0deg, #3a2a1a 0%, #5a4030 40%, #7a6040 100%); border-radius: 10% 10% 0 0 / 5% 5% 0 0; }
.scn-smith-killed .desk-overturned { position:absolute; bottom:22%; right:20%; width:25%; height:10%; background: linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 4% 4% 2% 2%; transform: rotate(-15deg); box-shadow: 2px 4px 10px rgba(0,0,0,0.5); }
.scn-smith-killed .lamp-flicker { position:absolute; bottom:30%; left:25%; width:10%; height:20%; background: radial-gradient(circle at 50% 0%, #ffcc44 0%, #ff9900 30%, transparent 60%); border-radius: 50% 50% 20% 20% / 70% 70% 10% 10%; box-shadow: 0 0 40px 10px #ffaa33; animation: sk-lamp 0.8s steps(3) infinite; }
.scn-smith-killed .body-down { position:absolute; bottom:15%; left:30%; width:16%; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 30% 30% 50% 50%; transform: rotate(90deg); transform-origin: bottom left; animation: sk-body 5s ease-in-out infinite; }
.scn-smith-killed .stain { position:absolute; bottom:14%; left:34%; width:14%; height:4%; background: radial-gradient(circle, #7a2a1a 0%, #5a1a0a 60%, transparent 100%); border-radius: 50%; opacity: 0.9; }
.scn-smith-killed .chair-fallen { position:absolute; bottom:18%; left:55%; width:12%; height:14%; background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(-40deg); transform-origin: 50% 100%; }

@keyframes sk-lamp { 0% { opacity: 0.7; box-shadow: 0 0 30px 8px #ffaa33; } 33% { opacity: 0.9; box-shadow: 0 0 50px 15px #ffcc44; } 66% { opacity: 0.8; box-shadow: 0 0 40px 12px #ff9900; } 100% { opacity: 0.7; box-shadow: 0 0 30px 8px #ffaa33; } }
@keyframes sk-body { 0%,100% { transform: rotate(90deg) translateY(0); } 50% { transform: rotate(90deg) translateY(-2px); } }

.scn-isolated-household { background: linear-gradient(180deg, #e0d0b8 0%, #c8b098 30%, #a88870 100%), radial-gradient(ellipse at 50% 10%, rgba(255,235,180,0.3) 0%, transparent 70%); }

.scn-isolated-household .wall-panel { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #d4bc9a 0%, #b89878 100%); border-bottom: 2px solid #a08060; }
.scn-isolated-household .window-garden { position:absolute; top:15%; left:30%; width:40%; height:30%; background: linear-gradient(135deg, #a0d0a0 0%, #c0e0b0 40%, #e0f0d0 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 0 20px rgba(0,0,0,0.15); animation: ih-garden 12s ease-in-out infinite alternate; }
.scn-isolated-household .bookshelf { position:absolute; bottom:25%; right:8%; width:20%; height:50%; background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 40%, #6a4a2a 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
.scn-isolated-household .armchair-hop { position:absolute; bottom:20%; left:20%; width:18%; height:24%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: ih-sway 8s ease-in-out infinite; }
.scn-isolated-household .figure-at-window { position:absolute; bottom:30%; left:45%; width:12%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: ih-gaze 10s ease-in-out infinite; }
.scn-isolated-household .cat { position:absolute; bottom:26%; left:60%; width:8%; height:6%; background: radial-gradient(circle at 30% 30%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ih-cat 6s ease-in-out infinite; }
.scn-isolated-household .door { position:absolute; bottom:20%; right:2%; width:12%; height:40%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); }
.scn-isolated-household .rug { position:absolute; bottom:16%; left:25%; width:50%; height:6%; background: linear-gradient(90deg, #8a6a4a 0%, #a08060 30%, #706040 70%, #8a6a4a 100%); border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%; }

@keyframes ih-garden { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ih-sway { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes ih-gaze { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ih-cat { 0%,100% { transform: translateX(0) scale(1); } 25% { transform: translateX(5px) scale(1.02); } 50% { transform: translateX(10px) scale(0.98); } 75% { transform: translateX(5px) scale(1.01); } }

/* Scene: holmes-analysis – bright interior morning */
.scn-holmes-analysis {
  background: linear-gradient(180deg, #f5e6c0 0%, #dcd0b0 40%, #c0b090 100%), radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
}
.scn-holmes-analysis .window {
  position: absolute; top: 5%; left: 15%; width: 40%; height: 50%;
  background: linear-gradient(135deg, #fff8e0 0%, #e0d0b0 100%);
  border-radius: 4% / 6%; box-shadow: inset 0 0 30px rgba(255,240,200,0.6);
  animation: ha-window 10s ease-in-out infinite alternate;
}
.scn-holmes-analysis .table {
  position: absolute; bottom: 12%; left: 10%; width: 60%; height: 6%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-holmes-analysis .chair {
  position: absolute; bottom: 18%; left: 55%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2212 100%);
  border-radius: 10% 10% 5% 5%; transform-origin: bottom;
  animation: ha-chair 6s ease-in-out infinite;
}
.scn-holmes-analysis .watson-figure {
  position: absolute; bottom: 18%; left: 20%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center;
  animation: ha-watson 12s ease-in-out infinite;
}
.scn-holmes-analysis .holmes-figure {
  position: absolute; bottom: 18%; left: 40%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 35% 35% 20% 20% / 55% 55% 25% 25%; transform-origin: bottom;
  animation: ha-holmes 3s ease-in-out infinite alternate;
}
.scn-holmes-analysis .plate {
  position: absolute; bottom: 14%; left: 30%; width: 10%; height: 2%;
  background: radial-gradient(ellipse, #f0e0c0 0%, #d0b890 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-holmes-analysis .cup {
  position: absolute; bottom: 14%; left: 33%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #b09070 0%, #907050 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: ha-cup 4s ease-in-out infinite alternate;
}
.scn-holmes-analysis .morning-light {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 20%, rgba(255,250,200,0.15) 0%, transparent 60%);
  animation: ha-light 9s ease-in-out infinite alternate;
}
@keyframes ha-window { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.85; transform:scale(0.98); } }
@keyframes ha-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ha-watson { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes ha-holmes { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(12px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes ha-cup { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ha-light { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* Scene: visit-godolphin-street – dim street exterior */
.scn-visit-godolphin-street {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2240 50%, #3a2a4e 100%), radial-gradient(ellipse at 50% 0%, #3a2a4e 0%, transparent 70%);
}
.scn-visit-godolphin-street .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 100%);
  animation: vg-sky 20s ease-in-out infinite alternate;
}
.scn-visit-godolphin-street .house {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 80%, #0a0a0a 100%);
  border-radius: 2% 2% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: vg-house 15s ease-in-out infinite;
}
.scn-visit-godolphin-street .door {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 4% 4% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-visit-godolphin-street .window-lestrade {
  position: absolute; bottom: 40%; left: 30%; width: 14%; height: 16%;
  background: radial-gradient(ellipse, #4a3a5a 0%, #1a1a2e 100%);
  border-radius: 8%; box-shadow: inset 0 0 12px rgba(0,0,0,0.8);
  animation: vg-lestrade 4s ease-in-out infinite alternate;
}
.scn-visit-godolphin-street .street-lamp {
  position: absolute; bottom: 32%; left: 60%; width: 2%; height: 18%;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 4px; box-shadow: 0 0 20px 8px rgba(255,200,100,0.3);
  animation: vg-lamp 5s ease-in-out infinite;
}
.scn-visit-godolphin-street .pavement {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-visit-godolphin-street .constable {
  position: absolute; bottom: 20%; left: 42%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom;
  animation: vg-constable 8s ease-in-out infinite;
}
@keyframes vg-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes vg-house { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes vg-lestrade { 0% { box-shadow: inset 0 0 12px rgba(0,0,0,0.8), 0 0 4px rgba(255,200,100,0.2); } 50% { box-shadow: inset 0 0 20px rgba(0,0,0,0.9), 0 0 8px rgba(255,200,100,0.4); } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.85), 0 0 6px rgba(255,200,100,0.3); } }
@keyframes vg-lamp { 0% { box-shadow: 0 0 20px 8px rgba(255,200,100,0.3); } 50% { box-shadow: 0 0 30px 12px rgba(255,200,100,0.5); } 100% { box-shadow: 0 0 22px 9px rgba(255,200,100,0.35); } }
@keyframes vg-constable { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Scene: carpet-stain-discrepancy – dim interior crime scene */
.scn-carpet-stain-discrepancy {
  background: linear-gradient(180deg, #1a1822 0%, #2a2034 50%, #1a1224 100%), radial-gradient(ellipse at 50% 100%, #2a2034 0%, transparent 70%);
}
.scn-carpet-stain-discrepancy .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a2234 0%, #1a1224 100%);
}
.scn-carpet-stain-discrepancy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
}
.scn-carpet-stain-discrepancy .carpet {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #3a2a30 0%, #2a1a20 100%);
  border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: cs-carpet 12s ease-in-out infinite alternate;
}
.scn-carpet-stain-discrepancy .stain {
  position: absolute; bottom: 18%; left: 35%; width: 12%; height: 8%;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a0e10 70%, transparent 100%);
  border-radius: 50%; box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: cs-stain 8s ease-in-out infinite alternate;
}
.scn-carpet-stain-discrepancy .chair {
  position: absolute; bottom: 22%; left: 10%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0a08 100%);
  border-radius: 8% 8% 4% 4%; transform-origin: bottom;
  animation: cs-chair 6s ease-in-out infinite;
}
.scn-carpet-stain-discrepancy .side-table {
  position: absolute; bottom: 26%; left: 55%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4%; box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
}
.scn-carpet-stain-discrepancy .lamp {
  position: absolute; bottom: 32%; left: 56%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 0 16px 6px rgba(255,200,100,0.15);
  animation: cs-lamp 5s ease-in-out infinite alternate;
}
.scn-carpet-stain-discrepancy .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: cs-shadow 10s ease-in-out infinite;
}
@keyframes cs-carpet { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(0.99); } }
@keyframes cs-stain { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes cs-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cs-lamp { 0% { box-shadow: 0 0 16px 6px rgba(255,200,100,0.15); } 50% { box-shadow: 0 0 24px 10px rgba(255,200,100,0.25); } 100% { box-shadow: 0 0 18px 7px rgba(255,200,100,0.18); } }
@keyframes cs-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

/* Scene: hidden-compartment – crouched Holmes, floor */
.scn-hidden-compartment {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1424 60%, #0e0a12 100%), radial-gradient(ellipse at 50% 100%, #1a1424 0%, transparent 70%);
}
.scn-hidden-compartment .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-top: 2px solid #2a2a2a;
}
.scn-hidden-compartment .drugget {
  position: absolute; bottom: 8%; left: 10%; width: 70%; height: 34%;
  background: linear-gradient(135deg, #2a1a14 0%, #1a0a04 50%, #2a1a14 100%);
  border-radius: 2% 12% 4% 8%; transform-origin: left bottom;
  animation: hc-drugget 6s ease-in-out infinite alternate;
}
.scn-hidden-compartment .holmes-figure {
  position: absolute; bottom: 10%; left: 25%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 35% 35% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom;
  animation: hc-holmes 3s ease-in-out infinite alternate;
}
.scn-hidden-compartment .compartment {
  position: absolute; bottom: 12%; left: 32%; width: 8%; height: 4%;
  background: #0a0a0a; border-radius: 2px; box-shadow: inset 0 0 8px rgba(255,200,100,0.1);
  animation: hc-compartment 4s ease-in-out infinite;
}
.scn-hidden-compartment .lamp {
  position: absolute; top: 10%; left: 45%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 2px; box-shadow: 0 0 30px 12px rgba(255,200,100,0.12);
  animation: hc-lamp 7s ease-in-out infinite alternate;
}
.scn-hidden-compartment .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: hc-shadow 9s ease-in-out infinite;
}
.scn-hidden-compartment .edge {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #3a2a3a 50%, transparent 100%);
  animation: hc-edge 8s ease-in-out infinite;
}
@keyframes hc-drugget { 0% { transform: translateY(0) rotate(-1deg); clip-path: inset(0 0 0 0); } 50% { transform: translateY(-8px) rotate(-3deg); clip-path: inset(0 0 0 0); } 100% { transform: translateY(0) rotate(1deg); clip-path: inset(0 0 0 0); } }
@keyframes hc-holmes { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(2px) translateY(-2px) rotate(4deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes hc-compartment { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes hc-lamp { 0% { box-shadow: 0 0 30px 12px rgba(255,200,100,0.12); } 50% { box-shadow: 0 0 40px 18px rgba(255,200,100,0.2); } 100% { box-shadow: 0 0 32px 14px rgba(255,200,100,0.15); } }
@keyframes hc-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes hc-edge { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-motive-for-cheating { background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 40%, #b89a72 100%), radial-gradient(ellipse at 70% 30%, #ffe0a0 0%, transparent 60%); }
.scn-motive-for-cheating .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #fffbe6 0%, #e8dcc8 50%, #c8b89a 100%); animation: mfc-room 12s ease-in-out infinite alternate; }
.scn-motive-for-cheating .desk { position:absolute; bottom:25%; left:25%; right:25%; height:35%; background: linear-gradient(180deg, #8a6a45 0%, #6a4e32 100%); border-radius: 4% 4% 0 0; box-shadow: 0 12px 30px rgba(0,0,0,.3); }
.scn-motive-for-cheating .papers { position:absolute; bottom:40%; left:38%; width:20%; height:10%; background: linear-gradient(135deg, #f0e4d0 0%, #dcc8b0 100%); border-radius: 2px; box-shadow: 2px 2px 8px rgba(0,0,0,.15); animation: mfc-papers 5s ease-in-out infinite alternate; }
.scn-motive-for-cheating .lamp-glow { position:absolute; bottom:45%; left:45%; width:40px; height:40px; background: radial-gradient(circle, #ffddaa 0%, #ffcc88 40%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: mfc-lamp 3s ease-in-out infinite; }
.scn-motive-for-cheating .figure-shadow { position:absolute; bottom:20%; right:20%; width:30%; height:50%; background: linear-gradient(135deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.6) 100%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%); filter: blur(4px); animation: mfc-shad 4s ease-in-out infinite; }
.scn-motive-for-cheating .figure-body { position:absolute; bottom:15%; right:22%; width:12%; height:40%; background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mfc-fig 6s ease-in-out infinite; }
.scn-motive-for-cheating .money-bag { position:absolute; bottom:35%; left:30%; width:20px; height:15px; background: radial-gradient(circle, #c8a86a 0%, #8a7040 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 10px 3px rgba(200,168,106,.4); animation: mfc-bag 4s ease-in-out infinite; }
.scn-motive-for-cheating .clock { position:absolute; top:15%; right:15%; width:30px; height:30px; background: radial-gradient(circle, #e0d0b0 0%, #c0a880 100%); border-radius: 50%; border: 3px solid #8a7050; box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: mfc-clock 10s ease-in-out infinite; }
.scn-motive-for-cheating .sharp-shadow { position:absolute; bottom:35%; left:35%; width:25%; height:20%; background: linear-gradient(135deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.5) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); filter: blur(3px); animation: mfc-sharp 8s ease-in-out infinite alternate; }
@keyframes mfc-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mfc-papers { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mfc-lamp { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.7 } }
@keyframes mfc-shad { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(4px) scaleY(1.05) } 100% { transform: translateX(-2px) scaleY(0.95) } }
@keyframes mfc-fig { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(2deg) } 75% { transform: translateY(-4px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mfc-bag { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(2px) scale(1.05) } 100% { transform: translateX(-1px) scale(0.95) } }
@keyframes mfc-clock { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-5deg) } }
@keyframes mfc-sharp { 0% { opacity:0.4; transform: skewX(0deg) } 50% { opacity:0.8; transform: skewX(3deg) } 100% { opacity:0.3; transform: skewX(-2deg) } }

.scn-traces-of-intruder { background: linear-gradient(160deg, #f2e3c9 0%, #d9cbb0 40%, #b8a88a 100%), radial-gradient(ellipse at 30% 80%, #fff8e0 0%, transparent 70%); }
.scn-traces-of-intruder .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #fff9e6 0%, #e8dcc5 50%, #cdbea0 100%); animation: toi-bg 15s ease-in-out infinite alternate; }
.scn-traces-of-intruder .table { position:absolute; bottom:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #9a7a55 0%, #7a5e3e 100%); border-radius: 6% 6% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.scn-traces-of-intruder .pencil-shavings { position:absolute; bottom:55%; left:35%; width:30px; height:5px; background: linear-gradient(90deg, #b8a070, #a08860, #b8a070); border-radius: 50%; filter: blur(1px); animation: toi-shave 6s ease-in-out infinite; }
.scn-traces-of-intruder .broken-lead { position:absolute; bottom:50%; left:40%; width:8px; height:2px; background: #4a3a2a; border-radius: 1px; box-shadow: 0 0 2px 1px rgba(0,0,0,.3); animation: toi-lead 8s ease-in-out infinite alternate; }
.scn-traces-of-intruder .window-light { position:absolute; top:10%; right:15%; width:60px; height:70px; background: linear-gradient(135deg, rgba(255,255,200,0.6) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); filter: blur(4px); animation: toi-window 12s ease-in-out infinite; }
.scn-traces-of-intruder .intruder-trace { position:absolute; bottom:35%; left:45%; width:12px; height:8px; background: radial-gradient(circle, #6a5a4a 0%, transparent 100%); border-radius: 50%; animation: toi-trace 10s ease-in-out infinite alternate; }
.scn-traces-of-intruder .lens { position:absolute; bottom:40%; left:25%; width:20px; height:20px; border: 2px solid #b8a88a; background: rgba(200,190,170,0.3); border-radius: 50%; box-shadow: inset 0 0 6px rgba(0,0,0,.1); animation: toi-lens 5s ease-in-out infinite; }
@keyframes toi-bg { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes toi-shave { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(3px) scaleX(1.2) } 100% { transform: translateX(-2px) scaleX(0.9) } }
@keyframes toi-lead { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-2deg) } }
@keyframes toi-window { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.05) } 100% { opacity:0.4; transform: scale(0.95) } }
@keyframes toi-trace { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.2) } 100% { transform: translateY(1px) scale(0.8) } }
@keyframes toi-lens { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(10deg) translateX(2px) } 100% { transform: rotate(-5deg) translateX(-1px) } }

.scn-cut-in-leather-table { background: linear-gradient(145deg, #f3e4c8 0%, #d9c4a6 40%, #b89e7a 100%), radial-gradient(ellipse at 20% 70%, #ffe4b0 0%, transparent 60%); }
.scn-cut-in-leather-table .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #fffbe6 0%, #eaddc0 50%, #ccbb9a 100%); animation: clt-bg 14s ease-in-out infinite alternate; }
.scn-cut-in-leather-table .desk-surface { position:absolute; bottom:25%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #a04530 0%, #7a3522 100%); border-radius: 6% 6% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.35); }
.scn-cut-in-leather-table .cut-mark { position:absolute; bottom:40%; left:35%; width:12%; height:2px; background: #3a1a0a; border-radius: 1px; box-shadow: 0 0 4px 2px rgba(0,0,0,.4); animation: clt-cut 7s ease-in-out infinite alternate; }
.scn-cut-in-leather-table .red-leather-glow { position:absolute; bottom:30%; left:30%; right:30%; height:35%; background: radial-gradient(ellipse at 50% 60%, rgba(180,80,40,0.3) 0%, transparent 100%); animation: clt-glow 5s ease-in-out infinite; }
.scn-cut-in-leather-table .hand-silhouette { position:absolute; bottom:35%; right:25%; width:15%; height:20%; background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%); border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%; animation: clt-hand 4s ease-in-out infinite; }
.scn-cut-in-leather-table .knife-blade { position:absolute; bottom:45%; right:30%; width:2%; height:15%; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 2px; transform-origin: bottom center; box-shadow: 0 0 4px rgba(0,0,0,.3); animation: clt-knife 6s ease-in-out infinite; }
.scn-cut-in-leather-table .shadow-edge { position:absolute; bottom:20%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.5) 100%); filter: blur(5px); animation: clt-edge 8s ease-in-out infinite alternate; }
@keyframes clt-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes clt-cut { 0% { transform: scaleX(1) rotate(0deg) } 50% { transform: scaleX(1.3) rotate(2deg) } 100% { transform: scaleX(0.8) rotate(-1deg) } }
@keyframes clt-glow { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.05) } 100% { opacity:0.3; transform: scale(0.95) } }
@keyframes clt-hand { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes clt-knife { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-2deg) } }
@keyframes clt-edge { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-2px) } 100% { opacity:0.2; transform: translateY(1px) } }

.scn-no-footmarks { background: linear-gradient(150deg, #efe0c8 0%, #d4c4a8 40%, #b8a688 100%), radial-gradient(ellipse at 60% 90%, #fff8e0 0%, transparent 70%); }
.scn-no-footmarks .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #faf3e0 0%, #e8dcc0 50%, #c8b898 100%); animation: nfm-bg 16s ease-in-out infinite alternate; }
.scn-no-footmarks .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #9a8a72 0%, #7a6a56 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-no-footmarks .rug { position:absolute; bottom:10%; left:30%; right:30%; height:25%; background: linear-gradient(135deg, #6a5040 0%, #4a3828 100%); border-radius: 8% 12% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: nfm-rug 10s ease-in-out infinite; }
.scn-no-footmarks .figure-standing { position:absolute; bottom:15%; left:45%; width:12%; height:45%; background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%); border-radius: 35% 35% 30% 30% / 60% 60% 40% 40%; animation: nfm-fig 8s ease-in-out infinite; }
.scn-no-footmarks .candle { position:absolute; bottom:18%; left:28%; width:8px; height:20px; background: linear-gradient(180deg, #e8d8b8 0%, #b8a880 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 6px rgba(200,180,140,0.5); animation: nfm-candle 5s ease-in-out infinite; }
.scn-no-footmarks .candle-light { position:absolute; bottom:25%; left:27%; width:16px; height:16px; background: radial-gradient(circle, #ffe8b0 0%, #ffd080 40%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: nfm-light 3s ease-in-out infinite alternate; }
.scn-no-footmarks .empty-space { position:absolute; bottom:5%; left:20%; right:20%; height:10%; background: repeating-linear-gradient(90deg, rgba(0,0,0,0.03) 0px, rgba(0,0,0,0.03) 8px, transparent 8px, transparent 16px); animation: nfm-empty 12s linear infinite; }
.scn-no-footmarks .shadow-fig { position:absolute; bottom:0; left:43%; width:16%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.5) 100%); clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); filter: blur(5px); animation: nfm-shadow 9s ease-in-out infinite alternate; }
@keyframes nfm-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes nfm-rug { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes nfm-fig { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 75% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes nfm-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes nfm-light { 0% { transform: scale(1); opacity:0.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.9); opacity:0.6 } }
@keyframes nfm-empty { 0% { background-position: 0 0 } 100% { background-position: 32px 0 } }
@keyframes nfm-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.05) } 100% { opacity:0.2; transform: scaleX(0.95) } }

/* advice-for-match */
.scn-advice-for-match {
  background:
    linear-gradient(180deg, #d9c8a8 0%, #c4ad8a 40%, #b89f78 100%),
    radial-gradient(ellipse at 50% 100%, #b89f78 0%, transparent 70%);
}
.scn-advice-for-match .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8dcc8 0%, #d9c8a8 100%); }
.scn-advice-for-match .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a08868 0%, #7a6448 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); }
.scn-advice-for-match .window { position:absolute; top:15%; right:12%; width:90px; height:110px; background: linear-gradient(180deg, #c4d8e8 0%, #98b8d0 100%); border:6px solid #7a6448; border-radius:4px; box-shadow: inset 0 0 30px rgba(100,140,180,0.5), 0 4px 12px rgba(0,0,0,0.15); animation: am-window 12s ease-in-out infinite alternate; }
.scn-advice-for-match .table { position:absolute; bottom:22%; left:50%; width:140px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5038 0%, #4a3828 100%); border-radius:2px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: am-table 10s ease-in-out infinite; }
.scn-advice-for-match .lamp { position:absolute; bottom:30%; left:55%; width:12px; height:24px; background: linear-gradient(180deg, #b08040 0%, #8a6028 100%); border-radius:4px; box-shadow: 0 0 20px 6px rgba(200,150,80,0.6), 0 0 40px 12px rgba(200,150,80,0.3); animation: am-lamp-glow 4s ease-in-out infinite alternate; }
.scn-advice-for-match .chair-left { position:absolute; bottom:20%; left:32%; width:40px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: am-chair 8s ease-in-out infinite alternate; }
.scn-advice-for-match .chair-right { position:absolute; bottom:20%; right:32%; width:40px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: am-chair 8s ease-in-out infinite alternate; animation-delay: -4s; }
.scn-advice-for-match .rug { position:absolute; bottom:12%; left:50%; width:200px; height:60px; transform:translateX(-50%); background: linear-gradient(90deg, #a04038 0%, #784028 30%, #a04038 50%, #784028 70%, #a04038 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
.scn-advice-for-match .picture { position:absolute; top:18%; left:10%; width:50px; height:60px; background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%); border:4px solid #6a5038; border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.15); }
@keyframes am-window { 0% { opacity:0.85; box-shadow: inset 0 0 30px rgba(100,140,180,0.5), 0 4px 12px rgba(0,0,0,0.15); } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(120,160,200,0.7), 0 4px 12px rgba(0,0,0,0.2); } 100% { opacity:0.9; box-shadow: inset 0 0 25px rgba(100,140,180,0.4), 0 4px 12px rgba(0,0,0,0.12); } }
@keyframes am-table { 0%,100% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-1px); } }
@keyframes am-lamp-glow { 0% { box-shadow: 0 0 20px 6px rgba(200,150,80,0.6), 0 0 40px 12px rgba(200,150,80,0.3); } 100% { box-shadow: 0 0 35px 10px rgba(220,170,100,0.8), 0 0 60px 20px rgba(220,170,100,0.5); } }
@keyframes am-chair { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }

/* porter-description */
.scn-porter-description {
  background:
    linear-gradient(180deg, #d0bea0 0%, #b8a07a 50%, #a08868 100%),
    radial-gradient(ellipse at 50% 0%, #d0bea0 0%, transparent 70%);
}
.scn-porter-description .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e0d0b8 0%, #d0bea0 100%); }
.scn-porter-description .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #9a7a58 0%, #7a5a3a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); }
.scn-porter-description .counter { position:absolute; bottom:18%; left:50%; width:200px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a48 0%, #6a4a28 100%); border-radius: 4px 4px 20px 20px; box-shadow: 0 6px 14px rgba(0,0,0,0.3); }
.scn-porter-description .porter-figure { position:absolute; bottom:16%; left:50%; width:28px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: pd-figure 12s ease-in-out infinite alternate; }
.scn-porter-description .lamp { position:absolute; bottom:40%; left:20%; width:10px; height:20px; background: linear-gradient(180deg, #c09050 0%, #a07030 100%); border-radius:4px; box-shadow: 0 0 25px 8px rgba(200,150,80,0.5), 0 0 50px 16px rgba(200,150,80,0.2); animation: pd-lamp 6s ease-in-out infinite alternate; }
.scn-porter-description .clock { position:absolute; top:12%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #e8d8b8 0%, #c0a888 100%); border-radius:50%; border:4px solid #6a5038; box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: pd-clock 60s linear infinite; }
.scn-porter-description .key-rack { position:absolute; top:22%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
@keyframes pd-figure { 0% { transform:translateX(-50%) translateY(0) rotate(0); } 50% { transform:translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform:translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes pd-lamp { 0% { box-shadow: 0 0 25px 8px rgba(200,150,80,0.5), 0 0 50px 16px rgba(200,150,80,0.2); } 100% { box-shadow: 0 0 35px 12px rgba(220,170,100,0.7), 0 0 70px 24px rgba(220,170,100,0.4); } }
@keyframes pd-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* porter-night-duty */
.scn-porter-night-duty {
  background:
    linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 40%, #0a0a2a 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a5a 0%, transparent 70%);
}
.scn-porter-night-duty .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); }
.scn-porter-night-duty .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); }
.scn-porter-night-duty .bed { position:absolute; bottom:12%; left:30%; width:160px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: pn-bed 15s ease-in-out infinite alternate; }
.scn-porter-night-duty .holmes-figure { position:absolute; bottom:20%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 35% 35% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pn-holmes 8s ease-in-out infinite; }
.scn-porter-night-duty .nightstand { position:absolute; bottom:18%; left:48%; width:30px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-porter-night-duty .lamp { position:absolute; bottom:30%; left:49%; width:8px; height:18px; background: linear-gradient(180deg, #b08040 0%, #8a6028 100%); border-radius: 3px; box-shadow: 0 0 20px 6px rgba(200,150,80,0.6), 0 0 40px 12px rgba(200,150,80,0.3); animation: pn-lamp 5s ease-in-out infinite alternate; }
.scn-porter-night-duty .window-night { position:absolute; top:10%; right:10%; width:80px; height:90px; background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%); border:6px solid #3a2a1a; border-radius:4px; box-shadow: inset 0 0 30px rgba(50,80,120,0.4), 0 4px 12px rgba(0,0,0,0.3); animation: pn-window 18s ease-in-out infinite alternate; }
.scn-porter-night-duty .rug { position:absolute; bottom:6%; left:25%; width:180px; height:40px; background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 30%, #5a3a2a 50%, #4a2a1a 70%, #5a3a2a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
@keyframes pn-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pn-holmes { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(6px) translateY(0) rotate(0); } 75% { transform: translateX(3px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes pn-lamp { 0% { box-shadow: 0 0 20px 6px rgba(200,150,80,0.6), 0 0 40px 12px rgba(200,150,80,0.3); } 100% { box-shadow: 0 0 30px 8px rgba(220,170,100,0.8), 0 0 60px 20px rgba(220,170,100,0.5); } }
@keyframes pn-window { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }

/* telegram-answer */
.scn-telegram-answer {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #c0ac8a 50%, #a89070 100%),
    radial-gradient(ellipse at 50% 100%, #a89070 0%, transparent 70%);
}
.scn-telegram-answer .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e0d0b8 0%, #d4c4a8 100%); }
.scn-telegram-answer .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #9a7a58 0%, #7a5a3a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); }
.scn-telegram-answer .table { position:absolute; bottom:20%; left:50%; width:140px; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%); border-radius:2px; box-shadow: 0 6px 14px rgba(0,0,0,0.3); animation: ta-table 12s ease-in-out infinite; }
.scn-telegram-answer .holmes-back { position:absolute; bottom:18%; left:44%; width:26px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ta-holmes 10s ease-in-out infinite; }
.scn-telegram-answer .lamp { position:absolute; bottom:28%; left:56%; width:10px; height:20px; background: linear-gradient(180deg, #c09050 0%, #a07030 100%); border-radius:3px; box-shadow: 0 0 30px 8px rgba(200,150,80,0.6), 0 0 60px 16px rgba(200,150,80,0.3); animation: ta-lamp 5s ease-in-out infinite alternate; }
.scn-telegram-answer .telegram { position:absolute; bottom:21%; left:50%; width:40px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #e8d8b8 0%, #c0a888 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: ta-telegram 8s ease-in-out infinite alternate; }
.scn-telegram-answer .pen { position:absolute; bottom:21%; left:57%; width:3px; height:14px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius:1px; transform: rotate(20deg); animation: ta-pen 6s ease-in-out infinite; }
.scn-telegram-answer .porter-door { position:absolute; bottom:12%; right:15%; width:40px; height:80px; background: linear-gradient(180deg, #6a4a28 0%, #4a2a10 100%); border-radius:4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: ta-door 20s ease-in-out infinite alternate; }
@keyframes ta-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes ta-holmes { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ta-lamp { 0% { box-shadow: 0 0 30px 8px rgba(200,150,80,0.6), 0 0 60px 16px rgba(200,150,80,0.3); } 100% { box-shadow: 0 0 40px 12px rgba(220,170,100,0.8), 0 0 80px 24px rgba(220,170,100,0.5); } }
@keyframes ta-telegram { 0% { transform: translateX(-50%) translateY(0); } 100% { transform: translateX(-50%) translateY(-2px); } }
@keyframes ta-pen { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes ta-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }

/* Scene: innocent-weapon – calm bright interior, writing table with knife */
.scn-innocent-weapon {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e0c9a6 50%, #d4b78c 100%),
    radial-gradient(ellipse at 50% 20%, #fff4e6 0%, transparent 60%);
}
.scn-innocent-weapon .room-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #e8d4b8 0%, #d4be9e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.05);
}
.scn-innocent-weapon .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c9a87a 0%, #b8956a 100%);
}
.scn-innocent-weapon .desk {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #a07850 0%, #7a5838 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-innocent-weapon .lamp {
  position: absolute; bottom: 36%; left: 28%; width: 12%; height: 16%;
  background: radial-gradient(circle at 50% 20%, #ffe8c0 0%, #d4a070 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(212,160,112,0.4);
  animation: iw-lamp 6s ease-in-out infinite alternate;
}
.scn-innocent-weapon .figure {
  position: absolute; bottom: 18%; right: 18%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: iw-figure 10s ease-in-out infinite;
}
.scn-innocent-weapon .knife {
  position: absolute; bottom: 8%; left: 40%; width: 10%; height: 4%;
  background: linear-gradient(135deg, #e8c99a 0%, #b09060 100%);
  border-radius: 30% 50% 20% 30%;
  transform: rotate(-20deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: iw-knife 20s linear infinite;
}
.scn-innocent-weapon .shadow-bar {
  position: absolute; bottom: 38%; left: 15%; width: 70%; height: 2%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.1), transparent);
  filter: blur(3px);
  animation: iw-shadow 15s ease-in-out infinite;
}
@keyframes iw-lamp {
  0% { box-shadow: 0 0 20px 8px rgba(212,160,112,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 15px rgba(212,160,112,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px rgba(212,160,112,0.35); opacity: 0.92; }
}
@keyframes iw-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-2px) translateY(0) rotate(0); }
}
@keyframes iw-knife {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-18deg) translateX(3px); }
  100% { transform: rotate(-22deg) translateX(-3px); }
}
@keyframes iw-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.2; transform: scaleX(0.9); }
}

/* Scene: dying-words – tense bright interior, agitated figure in bed */
.scn-dying-words {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d4b080 50%, #b89060 100%),
    radial-gradient(ellipse at 50% 30%, #ffe8d0 0%, transparent 70%);
}
.scn-dying-words .bedroom-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #e8d4b8 0%, #c8ac8a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-dying-words .bed-frame {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
}
.scn-dying-words .figure-sitting {
  position: absolute; bottom: 38%; left: 30%; width: 18%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dw-sit 1.5s ease-in-out infinite;
}
.scn-dying-words .pillow {
  position: absolute; bottom: 44%; left: 44%; width: 20%; height: 10%;
  background: radial-gradient(circle at 50% 40%, #f0e8d8 0%, #d4c8b0 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: dw-pillow 6s ease-in-out infinite;
}
.scn-dying-words .lamp-bright {
  position: absolute; bottom: 50%; right: 22%; width: 10%; height: 20%;
  background: radial-gradient(circle at 50% 40%, #fff0d0 0%, #d4b080 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 50px 20px rgba(212,176,128,0.6);
  animation: dw-lamp 2s ease-in-out infinite alternate;
}
.scn-dying-words .shadow-stripes {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(90deg,
    transparent 0px, transparent 30px,
    rgba(0,0,0,0.08) 30px, rgba(0,0,0,0.08) 40px,
    transparent 40px, transparent 60px);
  pointer-events: none;
  animation: dw-stripes 8s linear infinite;
}
.scn-dying-words .curtain {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #a08060 0%, #80604a 100%);
  border-radius: 0 0 0 20%;
  filter: blur(3px);
  animation: dw-curtain 12s ease-in-out infinite alternate;
}
@keyframes dw-sit {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(6px) rotate(3deg); }
  50% { transform: translateX(-4px) rotate(-4deg); }
  75% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes dw-pillow {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.05) translateY(-2px); }
  100% { transform: scale(0.98) translateY(1px); }
}
@keyframes dw-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(212,176,128,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 60px 25px rgba(212,176,128,0.7); opacity: 1; }
  100% { box-shadow: 0 0 35px 15px rgba(212,176,128,0.5); opacity: 0.9; }
}
@keyframes dw-stripes {
  0% { background-position: 0 0; }
  100% { background-position: 60px 0; }
}
@keyframes dw-curtain {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-8px) rotate(2deg); }
  100% { transform: translateX(4px) rotate(-1deg); }
}

/* Scene: professor-in-bed – calm bright interior, professor in nightclothes */
.scn-professor-in-bed {
  background:
    linear-gradient(180deg, #f7efe0 0%, #e0d0b8 50%, #c8b098 100%),
    radial-gradient(ellipse at 50% 60%, #fff8ee 0%, transparent 70%);
}
.scn-professor-in-bed .night-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.05);
}
.scn-professor-in-bed .headboard {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-professor-in-bed .figure-lying {
  position: absolute; bottom: 22%; left: 33%; width: 34%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: pb-lying 12s ease-in-out infinite;
}
.scn-professor-in-bed .blanket {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #b09070 0%, #8a7060 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: pb-blanket 15s ease-in-out infinite;
}
.scn-professor-in-bed .window-distant {
  position: absolute; top: 10%; left: 60%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #b8d0e8 0%, #8aaccc 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: pb-window 20s ease-in-out infinite alternate;
}
.scn-professor-in-bed .moonbeam {
  position: absolute; top: 10%; left: 55%; width: 35%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: pb-moon 30s linear infinite;
}
.scn-professor-in-bed .clock {
  position: absolute; bottom: 60%; left: 20%; width: 8%; height: 10%;
  background: radial-gradient(circle at 50% 40%, #f0e8d0 0%, #c8b898 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: pb-clock 4s ease-in-out infinite;
}
@keyframes pb-lying {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(1px) rotate(-0.5deg); }
}
@keyframes pb-blanket {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(-1px); }
  100% { transform: scaleX(0.98) translateY(1px); }
}
@keyframes pb-window {
  0% { opacity: 0.8; background: linear-gradient(180deg, #b8d0e8, #8aaccc); }
  50% { opacity: 1; background: linear-gradient(180deg, #cce0f0, #9ab8d6); }
  100% { opacity: 0.85; background: linear-gradient(180deg, #b4c8e0, #80a0c0); }
}
@keyframes pb-moon {
  0% { transform: translateX(-5%) scale(0.95); opacity: 0.6; }
  50% { transform: translateX(5%) scale(1.05); opacity: 0.9; }
  100% { transform: translateX(-3%) scale(0.98); opacity: 0.7; }
}
@keyframes pb-clock {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}

/* Scene: no-enemies – calm bright interior, study with body and detective */
.scn-no-enemies {
  background:
    linear-gradient(180deg, #f2e6d6 0%, #ddd0ba 50%, #c8b8a2 100%),
    radial-gradient(ellipse at 50% 40%, #fffaf2 0%, transparent 60%);
}
.scn-no-enemies .study-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c4ae 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.05);
}
.scn-no-enemies .study-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a690 0%, #a0907a 100%);
}
.scn-no-enemies .desk-papers {
  position: absolute; bottom: 25%; left: 15%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  overflow: hidden;
}
.scn-no-enemies .desk-papers::after {
  content: '';
  position: absolute; top: 10%; left: 10%; width: 30%; height: 20%;
  background: #f0e0c0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: ne-papers 30s ease-in-out infinite;
}
.scn-no-enemies .body-shape {
  position: absolute; bottom: 8%; left: 20%; width: 20%; height: 16%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: ne-body 15s ease-in-out infinite;
}
.scn-no-enemies .detective-silhouette {
  position: absolute; bottom: 15%; right: 20%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ne-detect 10s ease-in-out infinite;
}
.scn-no-enemies .lamp-soft {
  position: absolute; bottom: 30%; right: 10%; width: 10%; height: 20%;
  background: radial-gradient(circle at 50% 30%, #fff0d0 0%, #c8a880 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 40px 15px rgba(200,168,128,0.5);
  animation: ne-lamp 8s ease-in-out infinite alternate;
}
.scn-no-enemies .shadow-pool {
  position: absolute; bottom: 5%; left: 15%; width: 50%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: ne-shadow 20s linear infinite;
}
@keyframes ne-papers {
  0% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(8px) rotate(2deg); }
  66% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes ne-body {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.01); }
  100% { transform: translateY(1px) scale(0.99); }
}
@keyframes ne-detect {
  0% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(3px) rotate(-2deg); }
  66% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(1px) rotate(-0.5deg); }
}
@keyframes ne-lamp {
  0% { box-shadow: 0 0 25px 8px rgba(200,168,128,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 20px rgba(200,168,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 30px 12px rgba(200,168,128,0.35); opacity: 0.92; }
}
@keyframes ne-shadow {
  0% { transform: scaleY(0.8); opacity: 0.4; }
  50% { transform: scaleY(1.2); opacity: 0.7; }
  100% { transform: scaleY(0.9); opacity: 0.5; }
}

/* sailors-vengeance */
.scn-sailors-vengeance {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120c 50%, #0f0a06 100%),
              radial-gradient(ellipse at 30% 50%, #3a2a1e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-sailors-vengeance .cabin-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1e14, #1a120c 40%, #2a1e14);
}
.scn-sailors-vengeance .porthole {
  position: absolute; top: 10%; right: 12%; width: 60px; height: 60px; border-radius: 50%;
  background: radial-gradient(circle at 60% 40%, #4a5a6a 0%, #1a2a3a 100%);
  box-shadow: inset 0 0 20px #000, 0 0 10px rgba(0,0,0,.6);
  animation: sv-light-wave 10s ease-in-out infinite alternate;
}
.scn-sailors-vengeance .table {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.8);
}
.scn-sailors-vengeance .bottle {
  position: absolute; bottom: 26%; left: 40%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%; transform: rotate(-5deg);
  animation: sv-bottle-sway 6s ease-in-out infinite;
}
.scn-sailors-vengeance .lantern {
  position: absolute; bottom: 26%; left: 55%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 60%, #d09040 0%, #a06020 70%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 8px #d09040;
  animation: sv-lantern-glow 2s ease-in-out infinite alternate;
}
.scn-sailors-vengeance .figure {
  position: absolute; bottom: 26%; left: 22%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sv-figure-rage 4s ease-in-out infinite;
}
.scn-sailors-vengeance .shadow {
  position: absolute; bottom: 18%; left: 18%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
}
@keyframes sv-light-wave { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sv-bottle-sway { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes sv-lantern-glow { 0% { box-shadow: 0 0 20px 4px #d09040; opacity:0.8 } 50% { box-shadow: 0 0 40px 12px #e0a050; opacity:1 } 100% { box-shadow: 0 0 25px 6px #d09040; opacity:0.9 } }
@keyframes sv-figure-rage { 0% { transform: translateX(0) rotate(-2deg) scaleY(1) } 25% { transform: translateX(3px) rotate(2deg) scaleY(1.02) } 50% { transform: translateX(-2px) rotate(-3deg) scaleY(0.98) } 75% { transform: translateX(4px) rotate(1deg) scaleY(1.01) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }

/* sailors-fight */
.scn-sailors-fight {
  background: linear-gradient(90deg, #1e1410 0%, #2a1e18 50%, #1a120e 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a20 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-sailors-fight .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%);
}
.scn-sailors-fight .door {
  position: absolute; top: 10%; left: 5%; width: 50px; height: 80px;
  background: linear-gradient(90deg, #4a3a28 0%, #3a2a1a 100%);
  border: 2px solid #1a0e08; box-shadow: inset 0 0 8px #000;
  animation: sf-door-shake 8s linear infinite;
}
.scn-sailors-fight .figure-left {
  position: absolute; bottom: 15%; left: 20%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sf-fight-left 0.8s ease-in-out infinite alternate;
}
.scn-sailors-fight .figure-right {
  position: absolute; bottom: 15%; right: 20%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-fight-right 0.8s ease-in-out infinite alternate;
}
.scn-sailors-fight .stick {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 4px;
  background: linear-gradient(90deg, #6a4a2a, #4a2a10);
  transform: rotate(-30deg); border-radius: 2px;
  animation: sf-stick-swing 0.8s ease-in-out infinite alternate;
}
.scn-sailors-fight .shatter {
  position: absolute; top: 25%; left: 45%; width: 20px; height: 15px;
  background: radial-gradient(ellipse, #e0d0c0 0%, transparent 100%);
  animation: sf-shatter 2s steps(2) infinite;
}
.scn-sailors-fight .lamp {
  position: absolute; top: 12%; right: 18%; width: 10px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #c08040 0%, #804020 100%);
  border-radius: 20%; box-shadow: 0 0 20px 6px #c08040;
  animation: sf-lamp-flicker 0.5s ease-in-out infinite alternate;
}
@keyframes sf-door-shake { 0% { transform: translateX(0) } 25% { transform: translateX(2px) } 50% { transform: translateX(-1px) } 75% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes sf-fight-left { 0% { transform: translateX(0) rotate(-5deg) } 100% { transform: translateX(-5px) rotate(8deg) } }
@keyframes sf-fight-right { 0% { transform: translateX(0) rotate(5deg) } 100% { transform: translateX(5px) rotate(-8deg) } }
@keyframes sf-stick-swing { 0% { transform: rotate(-40deg) translateX(0) } 100% { transform: rotate(20deg) translateX(10px) } }
@keyframes sf-shatter { 0% { opacity:0.3; transform:scale(0.8) } 50% { opacity:0.8; transform:scale(1.2) } 100% { opacity:0.3; transform:scale(0.8) } }
@keyframes sf-lamp-flicker { 0% { opacity:0.7; box-shadow:0 0 15px 4px #c08040 } 50% { opacity:1; box-shadow:0 0 25px 8px #d0a050 } 100% { opacity:0.7; box-shadow:0 0 15px 4px #c08040 } }

/* holmes-judgment */
.scn-holmes-judgment {
  background: linear-gradient(180deg, #4a3a28 0%, #3a2a1a 50%, #2a1e14 100%),
              radial-gradient(ellipse at 30% 20%, #5a4a38 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-holmes-judgment .study-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #3a2a1a 0%, #2a1e14 50%, #3a2a1a 100%);
}
.scn-holmes-judgment .armchair {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-holmes-judgment .holmes {
  position: absolute; bottom: 22%; left: 22%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hj-smoke-slow 8s ease-in-out infinite;
}
.scn-holmes-judgment .visitor {
  position: absolute; bottom: 20%; right: 18%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%;
  animation: hj-visitor-nod 6s ease-in-out infinite;
}
.scn-holmes-judgment .lamp-glow {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #e0a050 0%, #a06020 70%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 50px 20px #e0a050;
  animation: hj-lamp-pulse 4s ease-in-out infinite;
}
.scn-holmes-judgment .pipe-smoke {
  position: absolute; top: 25%; left: 28%; width: 12px; height: 20px;
  background: radial-gradient(ellipse, rgba(255,255,240,0.4) 0%, transparent 100%);
  animation: hj-smoke-rise 6s linear infinite;
}
@keyframes hj-smoke-slow { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hj-visitor-nod { 0% { transform: rotate(0) } 30% { transform: rotate(3deg) } 70% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes hj-lamp-pulse { 0% { box-shadow: 0 0 40px 15px #e0a050; opacity:0.9 } 50% { box-shadow: 0 0 60px 25px #f0b060; opacity:1 } 100% { box-shadow: 0 0 40px 15px #e0a050; opacity:0.9 } }
@keyframes hj-smoke-rise { 0% { transform: translateY(0) scale(1); opacity:0.6 } 50% { transform: translateY(-20px) scale(1.5); opacity:0.3 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }

/* holmes-acquittal */
.scn-holmes-acquittal {
  background: linear-gradient(180deg, #6a5030 0%, #5a4020 50%, #4a3018 100%),
              radial-gradient(ellipse at 50% 30%, #8a6040 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-holmes-acquittal .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-holmes-acquittal .hand-left {
  position: absolute; bottom: 30%; left: 35%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #c8a888 0%, #a08060 100%);
  border-radius: 30% 10% 10% 30% / 50% 30% 30% 50%;
  transform: rotate(10deg); transform-origin: bottom left;
  animation: ha-handshake 3s ease-in-out infinite;
}
.scn-holmes-acquittal .hand-right {
  position: absolute; bottom: 30%; right: 35%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #c8a888 0%, #a08060 100%);
  border-radius: 10% 30% 30% 10% / 30% 50% 50% 30%;
  transform: rotate(-10deg); transform-origin: bottom right;
  animation: ha-handshake 3s ease-in-out infinite reverse;
}
.scn-holmes-acquittal .document {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform: rotate(2deg);
  animation: ha-paper-settle 12s ease-in-out infinite;
}
.scn-holmes-acquittal .inkwell {
  position: absolute; bottom: 32%; right: 20%; width: 12px; height: 14px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 3px 6px #000;
}
.scn-holmes-acquittal .lamp-soft {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 20%, #f0c080 0%, #b08040 70%);
  border-radius: 30%; box-shadow: 0 0 60px 25px #f0c080;
  animation: ha-warm-glow 5s ease-in-out infinite;
}
.scn-holmes-acquittal .glow-halo {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 50% 30%, rgba(240,192,128,0.2) 0%, transparent 70%);
  animation: ha-halo-breathe 8s ease-in-out infinite alternate;
}
@keyframes ha-handshake { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes ha-paper-settle { 0% { transform: rotate(2deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(2deg) } }
@keyframes ha-warm-glow { 0% { box-shadow: 0 0 50px 20px #f0c080; opacity:0.8 } 50% { box-shadow: 0 0 80px 30px #f0c880; opacity:1 } 100% { box-shadow: 0 0 50px 20px #f0c080; opacity:0.8 } }
@keyframes ha-halo-breathe { 0% { opacity:0.1; transform:scale(1) } 50% { opacity:0.3; transform:scale(1.05) } 100% { opacity:0.1; transform:scale(1) } }

.scn-holmes-sets-court {
  background:
    linear-gradient(180deg, #e8da9a 0%, #c8b67a 40%, #a89058 100%),
    radial-gradient(ellipse at 70% 30%, #fdf4d4 0%, transparent 60%);
}

.scn-holmes-sets-court .wall-bg {
  position:absolute;
  inset:0 0 40% 0;
  background: linear-gradient(180deg, #d6c898 0%, #b8a470 100%);
  animation: hsc-wall 20s ease-in-out infinite alternate;
}
.scn-holmes-sets-court .floor {
  position:absolute;
  bottom:0; left:0; right:0;
  height:40%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,.3);
  animation: hsc-floor 12s ease-in-out infinite;
}
.scn-holmes-sets-court .window-light {
  position:absolute;
  top:12%; left:45%;
  width:100px; height:140px;
  background: linear-gradient(135deg, #fffbe0 0%, #e8d898 50%, transparent 100%);
  border-radius: 5% 5% 80% 80%/10% 10% 90% 90%;
  filter: blur(8px);
  opacity:0.6;
  animation: hsc-light 8s ease-in-out infinite alternate;
}
.scn-holmes-sets-court .desk {
  position:absolute;
  bottom:28%; left:30%;
  width:200px; height:40px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 20px rgba(0,0,0,.5);
  animation: hsc-desk 10s ease-in-out infinite;
}
.scn-holmes-sets-court .holmes-figure {
  position:absolute;
  bottom:32%; left:38%;
  width:30px; height:80px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hsc-holmes 6s ease-in-out infinite;
}
.scn-holmes-sets-court .papers {
  position:absolute;
  bottom:38%; left:42%;
  width:40px; height:30px;
  background: #f5f0e0;
  border-radius: 2%;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
  animation: hsc-papers 4s ease-in-out infinite alternate;
}
.scn-holmes-sets-court .chair {
  position:absolute;
  bottom:30%; right:25%;
  width:50px; height:60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: hsc-chair 7s ease-in-out infinite;
}

@keyframes hsc-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hsc-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hsc-light { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.65; transform: scaleX(1.05) } 100% { opacity:0.5; transform: scaleX(0.95) } }
@keyframes hsc-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes hsc-holmes { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(1px) rotate(0deg) } }
@keyframes hsc-papers { 0% { transform: translateX(0) rotate(0deg); box-shadow: 0 2px 8px rgba(0,0,0,.2) } 50% { transform: translateX(2px) rotate(2deg); box-shadow: 0 4px 12px rgba(0,0,0,.3) } 100% { transform: translateX(-1px) rotate(-1deg); box-shadow: 0 2px 6px rgba(0,0,0,.15) } }
@keyframes hsc-chair { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(1px) scale(0.98) } }

/* ---------------------------------------------- */
.scn-bannister-summoned {
  background:
    linear-gradient(180deg, #bfaa78 0%, #9a8250 50%, #7a6230 100%),
    radial-gradient(ellipse at 30% 40%, #f0e0b0 0%, transparent 60%);
}

.scn-bannister-summoned .floor-tiles {
  position:absolute;
  bottom:0; left:0; right:0;
  height:45%;
  background: repeating-linear-gradient(90deg, #8a7a5a 0px, #8a7a5a 40px, #6a5a3a 40px, #6a5a3a 80px);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 12px 40px rgba(0,0,0,.35);
  animation: bsu-floor 18s ease-in-out infinite alternate;
}
.scn-bannister-summoned .door-frame {
  position:absolute;
  bottom:20%; left:10%;
  width:120px; height:200px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 4%;
  box-shadow: 0 8px 25px rgba(0,0,0,.5);
  animation: bsu-frame 9s ease-in-out infinite;
}
.scn-bannister-summoned .door {
  position:absolute;
  bottom:22%; left:13%;
  width:100px; height:180px;
  background: linear-gradient(135deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2%;
  box-shadow: inset 0 4px 15px rgba(0,0,0,.4);
  animation: bsu-door 4s ease-in-out infinite alternate;
}
.scn-bannister-summoned .bannister-back {
  position:absolute;
  bottom:30%; left:20%;
  width:32px; height:90px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bsu-bannister 3s ease-in-out infinite;
}
.scn-bannister-summoned .holmes-sil {
  position:absolute;
  bottom:30%; left:55%;
  width:28px; height:85px;
  background: linear-gradient(180deg, #1a1a0a 0%, #000000 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: bsu-holmes 5s ease-in-out infinite;
}
.scn-bannister-summoned .watson-sil {
  position:absolute;
  bottom:30%; left:65%;
  width:26px; height:82px;
  background: linear-gradient(180deg, #1a1a0a 0%, #000000 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: bsu-watson 5.5s ease-in-out infinite;
}
.scn-bannister-summoned .table-judge {
  position:absolute;
  bottom:28%; left:50%;
  width:100px; height:30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  border-radius: 5%;
  transform: translateX(-50%);
  box-shadow: 0 4px 15px rgba(0,0,0,.4);
  animation: bsu-table 12s ease-in-out infinite;
}
.scn-bannister-summoned .shadow-stripe {
  position:absolute;
  top:0; left:0; right:0;
  height:100%;
  background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,.15) 50%, transparent 60%);
  filter: blur(20px);
  animation: bsu-stripe 7s ease-in-out infinite alternate;
}

@keyframes bsu-floor { 0% { opacity:0.7; background-size: 80px 100% } 50% { opacity:0.9; background-size: 80px 100% } 100% { opacity:0.6; background-size: 80px 100% } }
@keyframes bsu-frame { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes bsu-door { 0% { transform: rotateY(0deg) } 30% { transform: rotateY(-15deg) } 70% { transform: rotateY(5deg) } 100% { transform: rotateY(0deg) } }
@keyframes bsu-bannister { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-8px) translateY(-2px) rotate(-2deg) } 75% { transform: translateX(-4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes bsu-holmes { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bsu-watson { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bsu-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes bsu-stripe { 0% { opacity:0.2; transform: translateX(-10%) } 50% { opacity:0.5; transform: translateX(5%) } 100% { opacity:0.3; transform: translateX(15%) } }

/* ---------------------------------------------- */
.scn-holmes-accuses-bannister {
  background:
    linear-gradient(180deg, #c8b88a 0%, #a89068 50%, #887050 100%),
    radial-gradient(ellipse at 40% 40%, #f0e0b0 0%, transparent 50%);
}

.scn-holmes-accuses-bannister .wall-panel {
  position:absolute;
  inset:0 0 35% 0;
  background: linear-gradient(180deg, #b0a070 0%, #8a7a5a 100%);
  border-bottom: 4px solid #5a4a2a;
  animation: hab-wall 15s ease-in-out infinite alternate;
}
.scn-holmes-accuses-bannister .floor-board {
  position:absolute;
  bottom:0; left:0; right:0;
  height:35%;
  background: repeating-linear-gradient(90deg, #6a5a3a 0px, #6a5a3a 60px, #5a4a2a 60px, #5a4a2a 120px);
  box-shadow: inset 0 10px 35px rgba(0,0,0,.4);
  animation: hab-floor 10s ease-in-out infinite;
}
.scn-holmes-accuses-bannister .table-center {
  position:absolute;
  bottom:20%; left:50%;
  width:120px; height:35px;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a2a0a 100%);
  border-radius: 4%;
  transform: translateX(-50%);
  box-shadow: 0 6px 20px rgba(0,0,0,.5);
  animation: hab-table 8s ease-in-out infinite;
}
.scn-holmes-accuses-bannister .holmes-point {
  position:absolute;
  bottom:28%; left:42%;
  width:28px; height:88px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hab-point 2s ease-in-out infinite alternate;
}
.scn-holmes-accuses-bannister .bannister-fear {
  position:absolute;
  bottom:28%; right:40%;
  width:30px; height:86px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hab-fear 3s ease-in-out infinite;
}
.scn-holmes-accuses-bannister .lamp-glow {
  position:absolute;
  top:18%; left:50%;
  width:60px; height:60px;
  background: radial-gradient(circle, #fff4c0 0%, #f0e0a0 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: hab-lamp 4s ease-in-out infinite alternate;
}
.scn-holmes-accuses-bannister .shadow-cast {
  position:absolute;
  top:0; left:0; right:0;
  height:100%;
  background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.4) 100%);
  filter: blur(30px);
  animation: hab-shadow 6s ease-in-out infinite alternate;
}

@keyframes hab-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes hab-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes hab-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes hab-point { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(3deg) } }
@keyframes hab-fear { 0% { transform: translateY(0) rotate(0deg) scale(1) } 25% { transform: translateY(-3px) rotate(-2deg) scale(0.98) } 75% { transform: translateY(1px) rotate(2deg) scale(1.02) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes hab-lamp { 0% { opacity:0.5; transform: scale(0.9) } 50% { opacity:0.85; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes hab-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

/* ---------------------------------------------- */
.scn-bannister-denies-again {
  background:
    linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 50%, #5a4a2a 100%),
    radial-gradient(ellipse at 30% 50%, #d0c090 0%, transparent 50%);
}

.scn-bannister-denies-again .wall-dark {
  position:absolute;
  inset:0;
  background: linear-gradient(135deg, #5a4a2a 0%, #3a2a0a 100%);
  filter: blur(15px);
  animation: bda-wall 10s ease-in-out infinite alternate;
}
.scn-bannister-denies-again .bannister-profile {
  position:absolute;
  bottom:25%; left:40%;
  width:40px; height:110px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 60% 40% 45% 55% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bda-profile 4s ease-in-out infinite;
}
.scn-bannister-denies-again .holmes-shadow {
  position:absolute;
  bottom:25%; right:35%;
  width:30px; height:95px;
  background: linear-gradient(180deg, #1a1a0a 0%, #000000 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  opacity:0.7;
  animation: bda-shadow 6s ease-in-out infinite alternate;
}
.scn-bannister-denies-again .desk-edge {
  position:absolute;
  bottom:22%; left:30%;
  width:160px; height:20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  border-radius: 0 0 5% 5%;
  box-shadow: 0 4px 15px rgba(0,0,0,.5);
  animation: bda-desk 8s ease-in-out infinite;
}
.scn-bannister-denies-again .light-beam {
  position:absolute;
  top:10%; left:20%;
  width:30px; height:200px;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, transparent 100%);
  transform: rotate(-10deg);
  filter: blur(10px);
  animation: bda-beam 5s ease-in-out infinite alternate;
}
.scn-bannister-denies-again .sullen-mouth {
  position:absolute;
  bottom:40%; left:47%;
  width:14px; height:4px;
  background: #4a2a1a;
  border-radius: 0 0 50% 50%;
  transform: rotate(-2deg);
  animation: bda-mouth 3s ease-in-out infinite;
}

@keyframes bda-wall { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes bda-profile { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(1deg) } 70% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bda-shadow { 0% { opacity:0.5; transform: translateX(0) } 50% { opacity:0.8; transform: translateX(5px) } 100% { opacity:0.6; transform: translateX(-2px) } }
@keyframes bda-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes bda-beam { 0% { opacity:0.3; transform: rotate(-10deg) scaleY(0.9) } 50% { opacity:0.7; transform: rotate(-5deg) scaleY(1.1) } 100% { opacity:0.5; transform: rotate(-12deg) scaleY(0.95) } }
@keyframes bda-mouth { 0% { transform: rotate(-2deg) scaleX(1) } 50% { transform: rotate(0deg) scaleX(1.1) } 100% { transform: rotate(-3deg) scaleX(0.9) } }

/* scene: alexis-convict – tense, bright interior (prison cell) */
.scn-alexis-convict { background: linear-gradient(180deg, #c8a07a 0%, #8a6a4a 50%, #5a3a2a 100%), radial-gradient(ellipse at 60% 30%, #e8c8a0 0%, transparent 70%); }
.scn-alexis-convict .wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b89470 0%, #7a5a3a 100%); border-radius: 0 0 20% 20%; }
.scn-alexis-convict .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); }
.scn-alexis-convict .window  { position:absolute; top:15%; right:10%; width:12%; height:25%; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border:4px solid #4a2a1a; border-radius:8%; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); }
.scn-alexis-convict .bars    { position:absolute; top:15%; right:10%; width:12%; height:25%; background: repeating-linear-gradient(90deg, transparent 0%, transparent 20%, #3a2a1a 20%, #3a2a1a 22%, transparent 22%, transparent 42%, #3a2a1a 42%, #3a2a1a 44%, transparent 44%, transparent 64%, #3a2a1a 64%, #3a2a1a 66%, transparent 66%, transparent 86%, #3a2a1a 86%, #3a2a1a 88%, transparent 88%, transparent 100%); border-radius:8%; animation: ac-bars 4s ease-in-out infinite alternate; }
.scn-alexis-convict .figure  { position:absolute; bottom:10%; left:20%; width:8%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-figure 6s ease-in-out infinite; }
.scn-alexis-convict .lamp    { position:absolute; top:8%; left:15%; width:4%; height:6%; background: radial-gradient(circle at 50% 10%, #f0d090 0%, #b08040 60%, #603020 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 40px 15px rgba(240,208,144,0.4); animation: ac-lamp 3s ease-in-out infinite alternate; }
.scn-alexis-convict .shadow  { position:absolute; bottom:10%; left:20%; width:8%; height:10%; background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(6px); transform: translateY(10px); animation: ac-shadow 6s ease-in-out infinite; }
@keyframes ac-bars   { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ac-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-4px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes ac-lamp   { 0% { box-shadow: 0 0 30px 10px rgba(240,208,144,0.3); opacity:0.8; } 50% { box-shadow: 0 0 60px 25px rgba(240,208,144,0.6); opacity:1; } 100% { box-shadow: 0 0 40px 15px rgba(240,208,144,0.4); opacity:0.9; } }
@keyframes ac-shadow { 0% { opacity:0.3; transform: translateY(10px); } 50% { opacity:0.6; transform: translateY(14px); } 100% { opacity:0.4; transform: translateY(10px); } }

/* scene: purpose-of-visit – tense, bright interior (parlor) */
.scn-purpose-of-visit { background: linear-gradient(180deg, #d4bc9a 0%, #bca080 30%, #8a6a4a 100%), radial-gradient(ellipse at 50% 0%, #f0dcb8 0%, transparent 60%); }
.scn-purpose-of-visit .room-bg   { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #c8ac8a 0%, #9a7a5a 100%); border-radius: 0 0 30% 30%; }
.scn-purpose-of-visit .rug       { position:absolute; bottom:5%; left:10%; width:80%; height:40%; background: linear-gradient(135deg, #6a4a3a 0%, #a08060 50%, #6a4a3a 100%); border-radius:50%; transform: rotate(-2deg); box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: pov-rug 20s ease-in-out infinite alternate; }
.scn-purpose-of-visit .table     { position:absolute; bottom:25%; left:50%; width:25%; height:8%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:2%; transform: translateX(-50%); box-shadow: 0 6px 10px rgba(0,0,0,0.4); }
.scn-purpose-of-visit .chair     { position:absolute; bottom:22%; right:15%; width:15%; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 10% 10%; transform: rotate(-3deg); animation: pov-chair 8s ease-in-out infinite; }
.scn-purpose-of-visit .figure-woman { position:absolute; bottom:18%; left:60%; width:10%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pov-walk 5s ease-in-out infinite; }
.scn-purpose-of-visit .lamp-desk { position:absolute; top:10%; left:40%; width:5%; height:8%; background: radial-gradient(circle, #ffd0a0 0%, #c08050 60%, #603020 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 50px 20px rgba(255,208,160,0.4); animation: pov-lamp 3s ease-in-out infinite alternate; }
.scn-purpose-of-visit .papers    { position:absolute; bottom:28%; left:55%; width:8%; height:6%; background: linear-gradient(135deg, #f0e8d0 0%, #d0c0a0 100%); border-radius:3%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: pov-papers 2s ease-in-out infinite; }
@keyframes pov-rug   { 0% { opacity:0.8; transform: rotate(-2deg); } 50% { opacity:1; transform: rotate(0deg); } 100% { opacity:0.9; transform: rotate(2deg); } }
@keyframes pov-chair { 0% { transform: rotate(-3deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-3deg); } }
@keyframes pov-walk  { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(12px) translateY(-3px) rotate(2deg); } 60% { transform: translateX(24px) translateY(0) rotate(-2deg); } 100% { transform: translateX(36px) translateY(-1px) rotate(0deg); } }
@keyframes pov-lamp  { 0% { box-shadow: 0 0 40px 15px rgba(255,208,160,0.3); opacity:0.9; } 50% { box-shadow: 0 0 70px 30px rgba(255,208,160,0.6); opacity:1; } 100% { box-shadow: 0 0 50px 20px rgba(255,208,160,0.4); opacity:0.95; } }
@keyframes pov-papers { 0% { transform: translateX(0); } 25% { transform: translateX(4px); } 50% { transform: translateX(-2px); } 75% { transform: translateX(2px); } 100% { transform: translateX(0); } }

/* scene: secret-agent – calm, bright interior (study) */
.scn-secret-agent { background: linear-gradient(180deg, #c8d0d8 0%, #a0b0b8 40%, #7a8a92 100%), radial-gradient(ellipse at 30% 20%, #e0e8f0 0%, transparent 70%); }
.scn-secret-agent .office-bg   { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #b8c8d0 0%, #8898a0 100%); border-radius: 0 0 15% 15%; }
.scn-secret-agent .desk        { position:absolute; bottom:20%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-secret-agent .chair-agent { position:absolute; bottom:18%; right:22%; width:14%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 10% 10%; transform: rotate(2deg); animation: sa-chair 12s ease-in-out infinite; }
.scn-secret-agent .figure-secretary { position:absolute; bottom:15%; left:30%; width:10%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sa-fig 7s ease-in-out infinite; }
.scn-secret-agent .lamp-office { position:absolute; top:8%; left:35%; width:4%; height:7%; background: radial-gradient(circle, #f0e8d0 0%, #c0b090 60%, #806050 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 40px 15px rgba(240,232,208,0.5); animation: sa-lamp 4s ease-in-out infinite alternate; }
.scn-secret-agent .papers-secret { position:absolute; bottom:22%; left:40%; width:6%; height:5%; background: linear-gradient(135deg, #f0f0e0 0%, #d0d0c0 100%); border-radius:2%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: sa-papers 3s ease-in-out infinite; }
.scn-secret-agent .cabinet     { position:absolute; bottom:10%; left:5%; width:15%; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
@keyframes sa-chair { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes sa-fig   { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 66% { transform: translateX(16px) translateY(0) rotate(-1deg); } 100% { transform: translateX(24px) translateY(-1px) rotate(0deg); } }
@keyframes sa-lamp  { 0% { box-shadow: 0 0 30px 10px rgba(240,232,208,0.4); opacity:0.9; } 50% { box-shadow: 0 0 60px 25px rgba(240,232,208,0.7); opacity:1; } 100% { box-shadow: 0 0 40px 15px rgba(240,232,208,0.5); opacity:0.95; } }
@keyframes sa-papers { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(5deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* scene: tragedy-unfolds – tense, bright interior (struggle) */
.scn-tragedy-unfolds { background: linear-gradient(180deg, #c8a080 0%, #9a6a4a 50%, #6a3a2a 100%), radial-gradient(ellipse at 70% 40%, #e8a070 0%, transparent 60%); }
.scn-tragedy-unfolds .room-tragedy   { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #b89070 0%, #7a5a3a 100%); border-radius: 0 0 20% 20%; }
.scn-tragedy-unfolds .cupboard       { position:absolute; bottom:10%; right:10%; width:20%; height:70%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:4%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: tu-cupboard 8s ease-in-out infinite; }
.scn-tragedy-unfolds .figure-intruder { position:absolute; bottom:15%; left:40%; width:10%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tu-intruder 4s ease-in-out infinite; }
.scn-tragedy-unfolds .figure-victim  { position:absolute; bottom:10%; left:25%; width:10%; height:30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tu-victim 5s ease-in-out infinite; }
.scn-tragedy-unfolds .papers-scattered { position:absolute; bottom:25%; left:35%; width:12%; height:8%; background: linear-gradient(135deg, #f0e8d0 0%, #d0c0a0 100%); border-radius:2%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: tu-papers 2s ease-in-out infinite; }
.scn-tragedy-unfolds .door           { position:absolute; bottom:10%; left:5%; width:15%; height:75%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-tragedy-unfolds .lamp-struggle  { position:absolute; top:5%; left:45%; width:5%; height:8%; background: radial-gradient(circle, #f0c080 0%, #c08040 60%, #603020 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 50px 20px rgba(240,192,128,0.5); animation: tu-lamp 3s ease-in-out infinite alternate; }
@keyframes tu-cupboard { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes tu-intruder { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(20px) translateY(-5px) rotate(3deg); } 60% { transform: translateX(40px) translateY(0) rotate(-1deg); } 100% { transform: translateX(60px) translateY(-2px) rotate(0deg); } }
@keyframes tu-victim   { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 25% { transform: translateX(-10px) translateY(-3px) rotate(-1deg); } 50% { transform: translateX(-20px) translateY(0) rotate(0deg); } 75% { transform: translateX(-30px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-40px) translateY(0) rotate(-2deg); } }
@keyframes tu-papers   { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(8deg); } 50% { transform: translateY(0) rotate(-5deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tu-lamp     { 0% { box-shadow: 0 0 40px 15px rgba(240,192,128,0.4); opacity:0.9; } 50% { box-shadow: 0 0 70px 30px rgba(240,192,128,0.7); opacity:1; } 100% { box-shadow: 0 0 50px 20px rgba(240,192,128,0.5); opacity:0.95; } }

.scn-card-game-details {
  background: linear-gradient(180deg, #f3e7d0 0%, #d4c4a8 40%, #b8a88c 100%),
              radial-gradient(ellipse at 50% 100%, #dfd0b8 0%, transparent 60%);
}

.scn-card-game-details .bg-walls {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #e8dcc4 0%, #c8b89c 100%);
  animation: cgd-bg 20s ease-in-out infinite alternate;
}

.scn-card-game-details .table {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 22%;
  background: linear-gradient(180deg, #7a5c3a 0%, #4f3822 100%);
  border-radius: 60% 60% 30% 30% / 80% 80% 40% 40%;
  box-shadow: 0 12px 30px rgba(0,0,0,0.4);
  animation: cgd-table 12s ease-in-out infinite alternate;
}

.scn-card-game-details .dealer {
  position: absolute; bottom: 35%; left: 48%; width: 26px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cgd-figure 6s ease-in-out infinite;
}

.scn-card-game-details .player1 {
  position: absolute; bottom: 32%; left: 20%; width: 24px; height: 34px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cgd-figure 7s ease-in-out infinite reverse;
}

.scn-card-game-details .player2 {
  position: absolute; bottom: 30%; left: 70%; width: 22px; height: 32px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cgd-figure 5s ease-in-out infinite;
}

.scn-card-game-details .lamp {
  position: absolute; top: 12%; left: 50%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 60%, #f8e8b0 0%, #d4b86a 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 40px 16px rgba(248,232,176,0.5), 0 0 80px 32px rgba(248,232,176,0.2);
  animation: cgd-lamp 4s ease-in-out infinite alternate;
}

.scn-card-game-details .cards {
  position: absolute; bottom: 24%; left: 35%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f0e8d0 0%, #c8b89c 100%);
  border-radius: 6%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: cgd-cards 8s ease-in-out infinite;
}

@keyframes cgd-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cgd-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes cgd-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cgd-lamp { 0% { box-shadow: 0 0 30px 12px rgba(248,232,176,0.4); opacity: 0.85; } 50% { box-shadow: 0 0 50px 20px rgba(248,232,176,0.7); opacity: 1; } 100% { box-shadow: 0 0 35px 14px rgba(248,232,176,0.5); opacity: 0.9; } }
@keyframes cgd-cards { 0% { transform: translateY(0) rotate(-2deg) scale(1); } 50% { transform: translateY(1px) rotate(2deg) scale(1.02); } 100% { transform: translateY(0) rotate(-2deg) scale(1); } }

.scn-inquest-findings {
  background: linear-gradient(180deg, #d6cfc4 0%, #bfb6a8 40%, #a69a8c 100%),
              radial-gradient(ellipse at 50% 0%, #ebe3d6 0%, transparent 60%);
}

.scn-inquest-findings .bg-court {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d6cfc4 0%, #bfb6a8 100%);
  animation: iqf-bg 24s ease-in-out infinite alternate;
}

.scn-inquest-findings .bench {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: iqf-bench 15s ease-in-out infinite alternate;
}

.scn-inquest-findings .witness-stand {
  position: absolute; bottom: 14%; left: 38%; width: 18px; height: 26px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2e2218 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: iqf-stand 8s ease-in-out infinite;
}

.scn-inquest-findings .clerk {
  position: absolute; bottom: 18%; left: 55%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #4a3a2e 0%, #201810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iqf-clerk 6s ease-in-out infinite;
}

.scn-inquest-findings .gavel {
  position: absolute; bottom: 26%; left: 48%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #5e3e1a 0%, #3a220e 100%);
  border-radius: 10% 10% 40% 40%;
  transform-origin: bottom center;
  animation: iqf-gavel 2s ease-in-out infinite;
}

.scn-inquest-findings .spectators {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, rgba(40,30,20,0.3) 0%, rgba(20,15,10,0.1) 100%);
  border-radius: 40% 40% 10% 10%;
  animation: iqf-spec 18s ease-in-out infinite alternate;
}

@keyframes iqf-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes iqf-bench { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(1px) scale(0.995); } 100% { transform: translateY(0) scale(1); } }
@keyframes iqf-stand { 0% { transform: translateY(0) rotate(-2deg); } 33% { transform: translateY(-1px) rotate(0deg); } 66% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes iqf-clerk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes iqf-gavel { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(2px) rotate(5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes iqf-spec { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }

.scn-evening-of-crime {
  background: linear-gradient(180deg, #1a1210 0%, #281a14 30%, #3a2218 60%, #100a08 100%),
              radial-gradient(ellipse at 50% 100%, #4a2e1e 0%, transparent 70%);
}

.scn-evening-of-crime .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  animation: evc-bg 10s ease-in-out infinite alternate;
}

.scn-evening-of-crime .fireplace {
  position: absolute; bottom: 12%; left: 35%; right: 35%; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
  animation: evc-fireplace 12s ease-in-out infinite alternate;
}

.scn-evening-of-crime .window {
  position: absolute; top: 8%; right: 12%; width: 70px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #2a364a 0%, #141e2a 100%);
  border: 4px solid #0a0806;
  border-radius: 4%;
  box-shadow: 0 0 20px 4px rgba(20,30,42,0.5);
  animation: evc-window 18s ease-in-out infinite alternate;
}

.scn-evening-of-crime .servant {
  position: absolute; bottom: 24%; left: 20%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: evc-servant 4s ease-in-out infinite;
}

.scn-evening-of-crime .table {
  position: absolute; bottom: 16%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0a06 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: evc-table 20s ease-in-out infinite alternate;
}

.scn-evening-of-crime .chair {
  position: absolute; bottom: 16%; left: 60%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #2e1810 0%, #120a06 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: evc-chair 9s ease-in-out infinite;
}

.scn-evening-of-crime .fire-glow {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ff8020 0%, #d05a10 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,128,32,0.3), 0 0 120px 60px rgba(255,128,32,0.1);
  animation: evc-fire 3s ease-in-out infinite alternate;
}

@keyframes evc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes evc-fireplace { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes evc-window { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes evc-servant { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes evc-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(1px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes evc-chair { 0% { transform: translateY(0) rotate(-3deg); } 33% { transform: translateY(1px) rotate(0deg); } 66% { transform: translateY(0) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes evc-fire { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }

.scn-discovery-of-body {
  background: linear-gradient(180deg, #0a080c 0%, #120e14 30%, #08060a 70%, #040204 100%),
              radial-gradient(ellipse at 50% 40%, #1a1620 0%, transparent 80%);
}

.scn-discovery-of-body .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a080c 0%, #040206 100%);
  animation: dob-bg 30s ease-in-out infinite alternate;
}

.scn-discovery-of-body .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 16%;
  background: linear-gradient(180deg, #1a1418 0%, #0a0608 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: dob-table 18s ease-in-out infinite alternate;
}

.scn-discovery-of-body .body {
  position: absolute; bottom: 4%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #140e12 0%, #080406 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  animation: dob-body 20s ease-in-out infinite;
}

.scn-discovery-of-body .lamp-dim {
  position: absolute; top: 15%; left: 45%; width: 14px; height: 22px;
  background: radial-gradient(circle at 50% 60%, #5a4a3a 0%, #2a1e14 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(90,74,58,0.3), 0 0 40px 12px rgba(90,74,58,0.1);
  animation: dob-lamp 8s ease-in-out infinite alternate;
}

.scn-discovery-of-body .door {
  position: absolute; left: 8%; top: 5%; width: 60px; height: 95%;
  background: linear-gradient(180deg, #1a1418 0%, #0a0608 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.6);
  animation: dob-door 12s ease-in-out infinite alternate;
}

.scn-discovery-of-body .papers {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #2a2218 0%, #1a120a 100%);
  border-radius: 2%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: dob-papers 25s ease-in-out infinite alternate;
}

@keyframes dob-bg { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dob-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(1px) scale(0.99); } 100% { transform: translateY(0) scale(1); } }
@keyframes dob-body { 0% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(11deg) translateY(1px); } 50% { transform: rotate(10deg) translateY(0); } 75% { transform: rotate(9deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes dob-lamp { 0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(90,74,58,0.2); } 50% { opacity: 1; box-shadow: 0 0 25px 8px rgba(90,74,58,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 18px 5px rgba(90,74,58,0.3); } }
@keyframes dob-door { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes dob-papers { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(2px); } 100% { transform: rotate(-15deg) translateY(0); } }

/* Scene: holmes-sardonic */
.scn-holmes-sardonic {
  background: linear-gradient(180deg, #f5ead0 0%, #d8c8a8 60%, #b09870 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-holmes-sardonic .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(245,234,208,0.6) 0%, rgba(210,180,140,0.4) 100%);
  animation: hs-fade 12s ease-in-out infinite alternate;
}
.scn-holmes-sardonic .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 45%;
  background: linear-gradient(180deg, #7a5c3a 0%, #5a3e1e 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
  animation: hs-desk 9s ease-in-out infinite;
}
.scn-holmes-sardonic .plan-doc {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(135deg, #f2e8d0 0%, #d4c4a0 100%);
  border: 2px solid #b09870; border-radius: 2%; box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  transform: rotate(2deg); animation: hs-plan 8s ease-in-out infinite alternate;
}
.scn-holmes-sardonic .lamp {
  position: absolute; bottom: 40%; left: 60%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #b08a50 0%, #6a4a2a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 20px 10px rgba(230,200,120,0.4);
  animation: hs-lamp 5s ease-in-out infinite alternate;
}
.scn-holmes-sardonic .figure-holmes {
  position: absolute; bottom: 10%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-figure 6s ease-in-out infinite;
}
@keyframes hs-fade {
  0%,100% { opacity: 0.7; }
  50% { opacity: 1; }
}
@keyframes hs-desk {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes hs-plan {
  0% { transform: rotate(2deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(3deg) scale(0.98); }
}
@keyframes hs-lamp {
  0% { box-shadow: 0 0 15px 6px rgba(230,200,120,0.3); opacity:0.9; }
  50% { box-shadow: 0 0 30px 12px rgba(230,200,120,0.6); opacity:1; }
  100% { box-shadow: 0 0 20px 8px rgba(230,200,120,0.4); opacity:0.85; }
}
@keyframes hs-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* Scene: plan-of-study */
.scn-plan-of-study {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b896 50%, #a08868 100%),
              radial-gradient(ellipse at 50% 50%, #fff4d4 0%, transparent 70%);
}
.scn-plan-of-study .table-top {
  position: absolute; inset: 20% 5% 5% 5%;
  background: linear-gradient(180deg, #8a6e4e 0%, #5a442a 100%);
  border-radius: 2%; box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: ps-top 14s ease-in-out infinite alternate;
}
.scn-plan-of-study .plan-doc {
  position: absolute; top: 30%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(135deg, #f0e4cc 0%, #d6c4a8 100%);
  border: 2px solid #a08a6a; border-radius: 1%; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  transform: rotate(-1deg);
  animation: ps-plan 8s ease-in-out infinite;
}
.scn-plan-of-study .pencil {
  position: absolute; top: 55%; left: 60%; width: 18%; height: 4%;
  background: linear-gradient(90deg, #d0a050 0%, #a07030 100%);
  border-radius: 2% 30% 30% 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(20deg);
  animation: ps-pencil 6s ease-in-out infinite;
}
.scn-plan-of-study .hand {
  position: absolute; top: 45%; left: 35%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #d4b090 0%, #a08060 100%);
  border-radius: 50% 30% 30% 50% / 40% 40% 60% 60%;
  transform-origin: 50% 100%;
  animation: ps-hand 5s ease-in-out infinite alternate;
}
.scn-plan-of-study .light-spot {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,240,200,0.5) 0%, transparent 70%);
  animation: ps-light 10s ease-in-out infinite alternate;
}
.scn-plan-of-study .shadow-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: ps-shadow 12s ease-in-out infinite;
}
@keyframes ps-top {
  0%,100% { transform: scale(1); }
  50% { transform: scale(0.98); }
}
@keyframes ps-plan {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(1px); }
}
@keyframes ps-pencil {
  0% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(22deg) translateX(3px); }
  100% { transform: rotate(18deg) translateX(-2px); }
}
@keyframes ps-hand {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-2deg) scaleY(0.95); }
}
@keyframes ps-light {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.9); }
}
@keyframes ps-shadow {
  0%,100% { opacity: 0.4; }
  50% { opacity: 0.6; }
}

/* Scene: garden-path-examination */
.scn-garden-path-examination {
  background: linear-gradient(180deg, #bcc8b0 0%, #8a9e7a 40%, #5a6e4a 100%),
              radial-gradient(ellipse at 50% 30%, #d4dcc8 0%, transparent 60%);
}
.scn-garden-path-examination .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8d0c0 0%, #a0b090 100%);
  animation: gp-sky 20s ease-in-out infinite alternate;
}
.scn-garden-path-examination .path-wet {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 40%;
  background: linear-gradient(180deg, #7a8a78 0%, #4a5a48 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: gp-path 15s ease-in-out infinite;
}
.scn-garden-path-examination .grass-left {
  position: absolute; bottom: 5%; left: 0; width: 25%; height: 50%;
  background: linear-gradient(135deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 0 30% 0 0 / 0 60% 0 0;
  clip-path: polygon(0 100%, 100% 80%, 100% 20%, 0 0);
  animation: gp-grass 8s ease-in-out infinite alternate;
}
.scn-garden-path-examination .grass-right {
  position: absolute; bottom: 5%; right: 0; width: 25%; height: 50%;
  background: linear-gradient(225deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 30% 0 0 0 / 60% 0 0 0;
  clip-path: polygon(0 80%, 100% 100%, 100% 0, 0 20%);
  animation: gp-grass 10s ease-in-out infinite alternate-reverse;
}
.scn-garden-path-examination .gate {
  position: absolute; bottom: 5%; left: 50%; width: 12%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: gp-gate 12s ease-in-out infinite;
}
.scn-garden-path-examination .figure-crouch {
  position: absolute; bottom: 10%; left: 45%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gp-figure 6s ease-in-out infinite;
}
.scn-garden-path-examination .cloud-drift {
  position: absolute; top: 12%; left: -10%; width: 30%; height: 15%;
  background: linear-gradient(180deg, rgba(200,210,190,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: gp-drift 40s linear infinite;
}
@keyframes gp-sky {
  0%,100% { opacity: 0.7; }
  50% { opacity: 1; }
}
@keyframes gp-path {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes gp-grass {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.95); }
}
@keyframes gp-gate {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
}
@keyframes gp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gp-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(110vw); }
}

/* Scene: grass-tracks */
.scn-grass-tracks {
  background: linear-gradient(180deg, #b8c4b0 0%, #809080 50%, #506050 100%),
              radial-gradient(ellipse at 50% 80%, #c0d0b8 0%, transparent 60%);
}
.scn-grass-tracks .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c4d0c0 0%, #a0b098 100%);
  animation: gt-sky 25s ease-in-out infinite alternate;
}
.scn-grass-tracks .path-tiled {
  position: absolute; bottom: 12%; left: 15%; right: 15%; height: 33%;
  background: repeating-linear-gradient(90deg, #6a7a68 0px, #7a8a78 4px, #6a7a68 8px);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.2);
  animation: gt-path 16s ease-in-out infinite;
}
.scn-grass-tracks .grass-bank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  animation: gt-grass 10s ease-in-out infinite;
}
.scn-grass-tracks .gate-open {
  position: absolute; bottom: 22%; left: 50%; width: 14%; height: 35%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: gt-gate 14s ease-in-out infinite alternate;
}
.scn-grass-tracks .road-distant {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #6a7a68 0%, #4a5a48 100%);
  border-radius: 4%;
  transform: perspective(400px) rotateX(40deg);
  animation: gt-road 20s ease-in-out infinite;
}
.scn-grass-tracks .hedge-row {
  position: absolute; bottom: 18%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(135deg, #3a5a2a 0%, #2a4a1a 50%, #1a3a0a 100%);
  border-radius: 30% 30% 0 0;
  clip-path: polygon(0 80%, 10% 40%, 20% 70%, 30% 30%, 40% 60%, 50% 20%, 60% 50%, 70% 10%, 80% 40%, 90% 20%, 100% 30%, 100% 100%, 0 100%);
  animation: gt-hedge 8s ease-in-out infinite alternate;
}
.scn-grass-tracks .cloud-slow {
  position: absolute; top: 8%; right: -10%; width: 40%; height: 20%;
  background: linear-gradient(180deg, rgba(200,215,190,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: gt-cloud 60s linear infinite reverse;
}
@keyframes gt-sky {
  0%,100% { opacity: 0.6; }
  50% { opacity: 0.9; }
}
@keyframes gt-path {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes gt-grass {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.03) rotate(1deg); }
  100% { transform: scaleY(0.97) rotate(-1deg); }
}
@keyframes gt-gate {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.02); }
  100% { transform: translateX(-50%) scaleX(0.98); }
}
@keyframes gt-road {
  0% { transform: perspective(400px) rotateX(40deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(42deg) translateY(-2px); }
  100% { transform: perspective(400px) rotateX(38deg) translateY(1px); }
}
@keyframes gt-hedge {
  0% { clip-path: polygon(0 80%, 10% 40%, 20% 70%, 30% 30%, 40% 60%, 50% 20%, 60% 50%, 70% 10%, 80% 40%, 90% 20%, 100% 30%, 100% 100%, 0 100%); }
  50% { clip-path: polygon(0 75%, 10% 35%, 20% 65%, 30% 25%, 40% 55%, 50% 15%, 60% 45%, 70% 5%, 80% 35%, 90% 15%, 100% 25%, 100% 100%, 0 100%); }
  100% { clip-path: polygon(0 85%, 10% 45%, 20% 75%, 30% 35%, 40% 65%, 50% 25%, 60% 55%, 70% 15%, 80% 45%, 90% 25%, 100% 35%, 100% 100%, 0 100%); }
}
@keyframes gt-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

/* ---- investigating-body ---- */
.scn-investigating-body {
  background:
    linear-gradient(180deg, #f0ece4 0%, #d8d2c8 40%, #b8b0a0 100%),
    radial-gradient(ellipse at 50% 30%, #fff8f0 0%, transparent 60%);
}
.scn-investigating-body .light {
  position: absolute; top: 5%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fffbe6 0%, #f0d080 40%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(240,208,128,0.3);
  animation: inv-light 5s ease-in-out infinite alternate;
}
.scn-investigating-body .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 55%;
  background: linear-gradient(180deg, #c8c0b0 0%, #b8aea0 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-investigating-body .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #8a7e70 0%, #a09688 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
}
.scn-investigating-body .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #b0a698 0%, #7a7260 100%);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateX(10deg);
  animation: inv-table 8s ease-in-out infinite;
}
.scn-investigating-body .body {
  position: absolute; bottom: 32%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #c8b8a8 0%, #9a8e7e 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 30% 30%;
  transform: scale(0.95);
  animation: inv-body 6s ease-in-out infinite alternate;
}
.scn-investigating-body .sheet {
  position: absolute; bottom: 30%; left: 23%; width: 54%; height: 20%;
  background: linear-gradient(180deg, rgba(240,240,240,0.9) 0%, rgba(200,195,185,0.9) 100%);
  border-radius: 10% 10% 20% 20% / 40% 40% 20% 20%;
  filter: blur(1px);
  animation: inv-sheet 10s ease-in-out infinite;
}
.scn-investigating-body .detective {
  position: absolute; bottom: 22%; left: 8%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: inv-detect 4s ease-in-out infinite;
}
.scn-investigating-body .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: inv-shadow 8s ease-in-out infinite alternate;
}
@keyframes inv-light {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.04); opacity: 1; }
  100% { transform: scale(0.96); opacity: 0.85; }
}
@keyframes inv-table {
  0%, 100% { transform: perspective(300px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(300px) rotateX(10deg) translateY(-2px); }
}
@keyframes inv-body {
  0% { transform: scale(0.95) translateY(0); }
  100% { transform: scale(0.95) translateY(-3px); }
}
@keyframes inv-sheet {
  0%, 100% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
}
@keyframes inv-detect {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(2deg) translateX(2px); }
  50% { transform: rotate(-1deg) translateX(-1px); }
  75% { transform: rotate(1deg) translateX(1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes inv-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

/* ---- broken-bust-found ---- */
.scn-broken-bust-found {
  background:
    linear-gradient(180deg, #bcc0c0 0%, #a0a8a8 40%, #808888 100%),
    radial-gradient(ellipse at 50% 20%, #d0d8d8 0%, transparent 70%);
}
.scn-broken-bust-found .sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 45%;
  background: linear-gradient(180deg, #c8cece 0%, #b0b8b8 100%);
  animation: brk-sky 30s linear infinite alternate;
}
.scn-broken-bust-found .garden-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #4a5540 0%, #6a7a5a 60%, #8a9a7a 100%);
  border-radius: 60% 40% 0 0 / 30% 50% 0 0;
  animation: brk-ground 12s ease-in-out infinite;
}
.scn-broken-bust-found .fence {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 6px, transparent 6px, transparent 12px);
  background-size: 12px 100%;
  opacity: 0.6;
  animation: brk-fence 20s linear infinite;
}
.scn-broken-bust-found .house {
  position: absolute; bottom: 18%; right: 10%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #7a7268 0%, #5a5248 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
  transform: scaleX(0.9);
  animation: brk-house 10s ease-in-out infinite alternate;
}
.scn-broken-bust-found .bust-fragments {
  position: absolute; bottom: 10%; left: 35%; width: 20%; height: 12%;
  background: linear-gradient(135deg, #c0a880 0%, #a08060 40%, #806040 100%);
  border-radius: 5% 5% 20% 20% / 10% 10% 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: brk-frag 4s ease-in-out infinite;
}
.scn-broken-bust-found .detective-figure {
  position: absolute; bottom: 12%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: brk-detect 8s ease-in-out infinite;
}
.scn-broken-bust-found .leaf {
  position: absolute; top: 60%; left: 10%; width: 20px; height: 10px;
  background: rgba(80,100,60,0.5);
  border-radius: 50% 0;
  filter: blur(2px);
  animation: brk-leaf 25s linear infinite;
}
@keyframes brk-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes brk-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes brk-fence {
  0% { background-position: 0 0; }
  100% { background-position: 12px 0; }
}
@keyframes brk-house {
  0% { transform: scaleX(0.9) translateY(0); }
  50% { transform: scaleX(0.9) translateY(-3px); }
  100% { transform: scaleX(0.9) translateY(0); }
}
@keyframes brk-frag {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.03); }
  100% { transform: rotate(-1deg) scale(0.98); }
}
@keyframes brk-detect {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes brk-leaf {
  0% { transform: translate(0,0) rotate(0deg); opacity:0.3; }
  50% { transform: translate(-30vw, 40vh) rotate(180deg); opacity:0.6; }
  100% { transform: translate(-60vw, 80vh) rotate(360deg); opacity:0; }
}

/* ---- holmes-inspects-fragments ---- */
.scn-holmes-inspects-fragments {
  background:
    linear-gradient(180deg, #d0d4cc 0%, #bcc0b8 40%, #a0a89c 100%),
    radial-gradient(ellipse at 40% 50%, #e8ece0 0%, transparent 60%);
}
.scn-holmes-inspects-fragments .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #6a7260 0%, #8a9278 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: ins-ground 15s ease-in-out infinite;
}
.scn-holmes-inspects-fragments .fragments-pile {
  position: absolute; bottom: 20%; left: 30%; width: 25%; height: 15%;
  background: linear-gradient(135deg, #b8a080 0%, #8a7050 50%, #605040 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 50%, 80% 100%, 20% 100%, 0% 50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: ins-frag 6s ease-in-out infinite;
}
.scn-holmes-inspects-fragments .magnifying-glass {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #d0e0e8 0%, #a0b8c0 50%, transparent 60%);
  border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 0 2px #a0a8a0;
  transform: rotate(15deg);
  animation: ins-glass 4s ease-in-out infinite alternate;
}
.scn-holmes-inspects-fragments .hand {
  position: absolute; bottom: 25%; left: 22%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #d0b8a0 0%, #b09880 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ins-hand 5s ease-in-out infinite;
}
.scn-holmes-inspects-fragments .coat-tail {
  position: absolute; bottom: 20%; left: 15%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(5deg);
  animation: ins-coat 7s ease-in-out infinite;
}
.scn-holmes-inspects-fragments .shadow-stain {
  position: absolute; bottom: 0; left: 10%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 80%);
  animation: ins-shadow 10s ease-in-out infinite alternate;
}
@keyframes ins-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ins-frag {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(0.98); }
}
@keyframes ins-glass {
  0% { transform: rotate(10deg) translate(0,0); }
  50% { transform: rotate(20deg) translate(2px,-2px); }
  100% { transform: rotate(10deg) translate(0,0); }
}
@keyframes ins-hand {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  75% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ins-coat {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(7deg) translateY(-3px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes ins-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* ---- holmes-deduces-lamp ---- */
.scn-holmes-deduces-lamp {
  background:
    linear-gradient(180deg, #b0b8bc 0%, #8a9498 40%, #6a7478 100%),
    radial-gradient(ellipse at 60% 20%, #c8d0d4 0%, transparent 70%);
}
.scn-holmes-deduces-lamp .street-lamp {
  position: absolute; bottom: 30%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4240 0%, #2a2220 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 0 0 3px #5a5250;
  transform-origin: bottom center;
  animation: lam-lamp 6s ease-in-out infinite;
}
.scn-holmes-deduces-lamp .lamp-glare {
  position: absolute; bottom: 45%; left: 12%; width: 40px; height: 30px;
  background: radial-gradient(circle, #d0d8a0 0%, #b0b870 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(180,200,100,0.2);
  animation: lam-glare 4s ease-in-out infinite alternate;
}
.scn-holmes-deduces-lamp .house-silhouette {
  position: absolute; bottom: 15%; left: 45%; width: 50%; height: 70%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
  clip-path: polygon(0% 100%, 0% 30%, 10% 30%, 10% 20%, 20% 20%, 20% 10%, 30% 10%, 30% 20%, 40% 20%, 40% 30%, 50% 30%, 50% 100%);
  animation: lam-house 12s ease-in-out infinite alternate;
}
.scn-holmes-deduces-lamp .garden-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #5a5a50 0%, #7a7a6a 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: lam-wall 20s linear infinite;
}
.scn-holmes-deduces-lamp .pavement {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: repeating-linear-gradient(90deg, #6a6a5a 0px, #6a6a5a 8px, #8a8a7a 8px, #8a8a7a 16px);
  background-size: 16px 100%;
  opacity: 0.5;
  animation: lam-pave 30s linear infinite;
}
.scn-holmes-deduces-lamp .figure-holmes {
  position: absolute; bottom: 18%; left: 25%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lam-figure 8s ease-in-out infinite;
}
.scn-holmes-deduces-lamp .shadow-long {
  position: absolute; bottom: 0; left: 20%; width: 40%; height: 5%;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: lam-shadow 10s ease-in-out infinite alternate;
}
@keyframes lam-lamp {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes lam-glare {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.05); opacity: 0.9; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes lam-house {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-2px) scaleY(1.01); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes lam-wall {
  0% { background-position: 0 0; }
  100% { background-position: 16px 0; }
}
@keyframes lam-pave {
  0% { background-position: 0 0; }
  100% { background-position: 16px 0; }
}
@keyframes lam-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  75% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lam-shadow {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.4; transform: scaleX(1.2); }
  100% { opacity: 0.2; transform: scaleX(1); }
}

/* garden-door (gd) – overcast, calm */
.scn-garden-door {
  background:
    linear-gradient(180deg, #7a8a8a 0%, #b0b8b8 35%, #d0d8d8 60%, #a0b0a0 100%),
    radial-gradient(ellipse at 50% 100%, #c0c8c8 0%, transparent 60%);
  background-blend-mode: normal;
}
.scn-garden-door .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8a9898 0%, #bcc8c8 70%, transparent);
  animation: gd-sky 14s ease-in-out infinite alternate;
}
.scn-garden-door .garden-path {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(135deg, #6b7a5a 0%, #8a9a7a 40%, #5a6a4a 100%);
  border-radius: 30% 70% 0 0 / 100% 60% 0 0;
  box-shadow: inset 0 8px 18px rgba(0,0,0,0.2);
  animation: gd-path 20s ease-in-out infinite;
}
.scn-garden-door .door-frame {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-garden-door .door-glass {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(180,200,210,0.4) 0%, rgba(140,160,170,0.2) 100%);
  border-radius: 4px;
  filter: blur(3px);
  animation: gd-glass 8s ease-in-out infinite alternate;
}
.scn-garden-door .figure-silhouette {
  position: absolute; bottom: 22%; left: 38%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gd-figure 6s ease-in-out infinite;
}
.scn-garden-door .leaf-left {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 0 50% 0;
  animation: gd-leaf 5s ease-in-out infinite alternate;
}
.scn-garden-door .leaf-right {
  position: absolute; bottom: 36%; right: 30%; width: 22px; height: 12px;
  background: radial-gradient(ellipse at 50% 100%, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 0 50% 0 50%;
  animation: gd-leaf 5s ease-in-out infinite alternate-reverse;
}
@keyframes gd-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes gd-path { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes gd-glass { 0% { backdrop-filter: blur(6px); background: rgba(180,200,210,0.3) } 50% { backdrop-filter: blur(4px); background: rgba(170,190,200,0.5) } 100% { backdrop-filter: blur(6px); background: rgba(180,200,210,0.3) } }
@keyframes gd-figure { 0% { transform: translateY(0) rotate(-1deg) scaleY(1) } 50% { transform: translateY(-3px) rotate(1deg) scaleY(1.02) } 100% { transform: translateY(0) rotate(0) scaleY(1) } }
@keyframes gd-leaf { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(15deg) scale(1.1) } 100% { transform: rotate(-5deg) scale(0.95) } }

/* time-limit (tl) – bright interior, calm */
.scn-time-limit {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #f0ece0 40%, #e0d8c8 100%),
    radial-gradient(ellipse at 70% 60%, #f8f4e8 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-time-limit .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(90deg, #d0c8b8 0%, #e8e0d0 50%, #c8c0b0 100%);
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.05);
}
.scn-time-limit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b8a898 0%, #9a8a7a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-time-limit .clock-face {
  position: absolute; bottom: 42%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0ece0 0%, #d0c8b8 70%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15), inset 0 2px 4px rgba(255,255,255,0.4);
}
.scn-time-limit .clock-pendulum {
  position: absolute; bottom: 25%; left: 50%; width: 4px; height: 50px;
  transform-origin: 50% 0;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  animation: tl-pendulum 3s ease-in-out infinite;
}
.scn-time-limit .clock-pendulum::after {
  content: ''; position: absolute; bottom: -6px; left: -8px; width: 20px; height: 20px;
  background: radial-gradient(circle, #d0b090 0%, #a08060 100%);
  border-radius: 50%;
}
.scn-time-limit .chair-silhouette {
  position: absolute; bottom: 10%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: tl-chair 12s ease-in-out infinite;
}
.scn-time-limit .bureau-soft {
  position: absolute; bottom: 6%; right: 20%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-time-limit .duster-float {
  position: absolute; bottom: 30%; right: 15%; width: 12px; height: 8px;
  background: radial-gradient(ellipse at 50% 100%, #b0a090 0%, #807060 100%);
  border-radius: 50% 50% 0 0;
  animation: tl-duster 8s ease-in-out infinite;
}
@keyframes tl-pendulum { 0% { transform: rotate(-8deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-8deg) } }
@keyframes tl-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tl-duster { 0% { transform: translateY(0) translateX(0) rotate(-5deg) } 50% { transform: translateY(-6px) translateX(4px) rotate(5deg) } 100% { transform: translateY(0) translateX(0) rotate(-5deg) } }

/* scratch-on-bureau (sb) – bright interior close-up */
.scn-scratch-on-bureau {
  background:
    linear-gradient(135deg, #c8b888 0%, #b0a070 40%, #908050 100%),
    radial-gradient(circle at 50% 50%, #e0d0a0 0%, transparent 70%);
}
.scn-scratch-on-bureau .bureau-surface {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #b8a878 0%, #a09060 40%, #887848 100%);
  border-radius: 10px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
}
.scn-scratch-on-bureau .keyhole {
  position: absolute; bottom: 40%; left: 50%; width: 12px; height: 20px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, #2a2a1a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-scratch-on-bureau .scratch-mark {
  position: absolute; bottom: 42%; left: 48%; width: 40px; height: 3px;
  background: linear-gradient(90deg, transparent 0%, #6a5a3a 30%, #7a6a4a 70%, transparent);
  border-radius: 1px;
  transform: rotate(-15deg);
  animation: sb-scratch 6s ease-in-out infinite;
}
.scn-scratch-on-bureau .varnish-chip {
  position: absolute; bottom: 43%; left: 55%; width: 6px; height: 4px;
  background: linear-gradient(135deg, #b0a070 0%, #a09060 100%);
  border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0,0,0,0.2);
  animation: sb-chip 8s ease-in-out infinite alternate;
}
.scn-scratch-on-bureau .match-glow {
  position: absolute; bottom: 50%; left: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #ffb040 40%, transparent 70%);
  border-radius: 50%;
  animation: sb-glow 3s ease-in-out infinite alternate;
}
.scn-scratch-on-bureau .hand-hold {
  position: absolute; bottom: 30%; left: 25%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform: rotate(-20deg);
  animation: sb-hand 4s ease-in-out infinite;
}
@keyframes sb-scratch { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes sb-chip { 0% { transform: translateY(0) rotate(0) scale(1) } 50% { transform: translateY(-2px) rotate(20deg) scale(1.2) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes sb-glow { 0% { box-shadow: 0 0 12px 4px #ffb040, 0 0 24px 8px rgba(255,176,64,0.4) } 50% { box-shadow: 0 0 20px 8px #ffd080, 0 0 40px 16px rgba(255,208,128,0.5) } 100% { box-shadow: 0 0 14px 5px #ffb040, 0 0 28px 10px rgba(255,176,64,0.4) } }
@keyframes sb-hand { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }

/* mrs-marker-questioned (mm) – bright interior with figure */
.scn-mrs-marker-questioned {
  background:
    linear-gradient(180deg, #e0d8c8 0%, #c8c0b0 40%, #b0a898 100%),
    radial-gradient(ellipse at 60% 40%, #f0ece0 0%, transparent 70%);
}
.scn-mrs-marker-questioned .room-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #d0c8b8 0%, #e8e0d0 50%, #c0b8a8 100%);
}
.scn-mrs-marker-questioned .bureau-drawer {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.scn-mrs-marker-questioned .figure-old {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mm-figure 7s ease-in-out infinite;
}
.scn-mrs-marker-questioned .handkerchief {
  position: absolute; bottom: 28%; left: 28%; width: 10px; height: 8px;
  background: linear-gradient(135deg, #b0a898 0%, #908070 100%);
  border-radius: 20% 60% 20% 60%;
  animation: mm-handkerchief 9s ease-in-out infinite;
}
.scn-mrs-marker-questioned .duster-feather {
  position: absolute; bottom: 35%; right: 25%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 50% 50% 20% 20%;
  animation: mm-duster 6s ease-in-out infinite alternate;
}
.scn-mrs-marker-questioned .floor-shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.08) 0%, transparent);
  border-radius: 50%;
  animation: mm-shadow 12s ease-in-out infinite;
}
@keyframes mm-figure { 0% { transform: translateY(0) rotate(0deg) scaleY(1) } 50% { transform: translateY(-2px) rotate(2deg) scaleY(1.01) } 100% { transform: translateY(0) rotate(0deg) scaleY(1) } }
@keyframes mm-handkerchief { 0% { transform: translate(0,0) rotate(0deg) scale(1) } 50% { transform: translate(3px,-2px) rotate(10deg) scale(1.1) } 100% { transform: translate(0,0) rotate(0deg) scale(1) } }
@keyframes mm-duster { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-4px) } 100% { transform: rotate(10deg) translateY(2px) } }
@keyframes mm-shadow { 0% { opacity: 0.15 } 50% { opacity: 0.25 } 100% { opacity: 0.15 } }

.scn-hopkins-shows-notebook { background: linear-gradient(180deg, #2d1f1a 0%, #1f1210 100%), radial-gradient(ellipse at 50% 70%, #3a251c 0%, transparent 60%); }
.scn-hopkins-shows-notebook .backwall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1c17 0%, #1e120e 100%); }
.scn-hopkins-shows-notebook .table { position:absolute; bottom:0; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #3e2b22 0%, #2d1d16 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.6); }
.scn-hopkins-shows-notebook .notebook { position:absolute; bottom:18%; left:45%; width:40px; height:28px; background: linear-gradient(180deg, #6b543e 0%, #4a3828 100%); transform: rotate(2deg); border-radius:4px; box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: htn-book 6s ease-in-out infinite; }
.scn-hopkins-shows-notebook .lamp { position:absolute; bottom:25%; left:30%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 20%, #ffd17a 0%, #d4913a 50%, #7a4b20 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 -10px 40px 15px rgba(255,190,80,.45), 0 -20px 60px 25px rgba(255,160,50,.2); animation: htn-lamp 3s ease-in-out infinite alternate; }
.scn-hopkins-shows-notebook .hopkins-hand { position:absolute; bottom:14%; left:52%; width:20px; height:24px; background: linear-gradient(180deg, #5c3d2e 0%, #3d271d 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(-20deg); transform-origin: bottom left; animation: htn-hand 2.5s ease-in-out infinite; }
.scn-hopkins-shows-notebook .holmes-silhouette { position:absolute; bottom:10%; right:15%; width:40px; height:70px; background: linear-gradient(180deg, #2b1e19 0%, #1a110e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: htn-holmes-breathe 4s ease-in-out infinite; }
.scn-hopkins-shows-notebook .dust { position:absolute; inset:0; background: radial-gradient(circle at 20% 30%, rgba(255,220,150,.15) 10%, transparent 15%), radial-gradient(circle at 70% 50%, rgba(255,200,130,.1) 8%, transparent 12%), radial-gradient(circle at 40% 80%, rgba(255,180,100,.08) 6%, transparent 10%); animation: htn-dust 12s linear infinite; }
@keyframes htn-book { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(2deg) scale(1) } }
@keyframes htn-lamp { 0% { box-shadow: 0 -10px 40px 15px rgba(255,190,80,.45), 0 -20px 60px 25px rgba(255,160,50,.2); } 50% { box-shadow: 0 -10px 45px 18px rgba(255,200,80,.55), 0 -25px 70px 30px rgba(255,160,50,.3); } 100% { box-shadow: 0 -10px 35px 12px rgba(255,180,70,.35), 0 -15px 50px 20px rgba(255,140,40,.15); } }
@keyframes htn-hand { 0% { transform: rotate(-20deg) translateY(0) } 25% { transform: rotate(-18deg) translateY(-2px) } 50% { transform: rotate(-20deg) translateY(0) } 75% { transform: rotate(-22deg) translateY(-1px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes htn-holmes-breathe { 0% { transform: scaleX(-1) scaleY(1) } 50% { transform: scaleX(-1) scaleY(1.03) } 100% { transform: scaleX(-1) scaleY(1) } }
@keyframes htn-dust { 0% { background-position: 0 0; } 100% { background-position: 40px 20px; } }

.scn-hopkins-realizes { background: linear-gradient(180deg, #2d1f1a 0%, #1f1210 100%), radial-gradient(ellipse at 50% 60%, #2a1c17 0%, transparent 65%); }
.scn-hopkins-realizes .backwall { position:absolute; inset:0; background: linear-gradient(180deg, #281c17 0%, #1c110e 100%); }
.scn-hopkins-realizes .table { position:absolute; bottom:0; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #3e2b22 0%, #2d1d16 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.6); }
.scn-hopkins-realizes .notebook { position:absolute; bottom:18%; left:45%; width:40px; height:28px; background: linear-gradient(180deg, #6b543e 0%, #4a3828 100%); transform: rotate(2deg); border-radius:4px; box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: hr-book 8s ease-in-out infinite; }
.scn-hopkins-realizes .lamp { position:absolute; bottom:25%; left:30%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 20%, #ffd17a 0%, #d4913a 50%, #7a4b20 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 -10px 40px 15px rgba(255,190,80,.45), 0 -20px 60px 25px rgba(255,160,50,.2); animation: hr-lamp 2s ease-in-out infinite alternate; }
.scn-hopkins-realizes .hopkins-figure { position:absolute; bottom:15%; left:48%; width:22px; height:60px; background: linear-gradient(180deg, #4a3022 0%, #2a1a12 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(5deg); transform-origin: bottom center; animation: hr-hopkins 3s ease-in-out infinite; }
.scn-hopkins-realizes .holmes-silhouette { position:absolute; bottom:10%; right:15%; width:40px; height:70px; background: linear-gradient(180deg, #2b1e19 0%, #1a110e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: hr-holmes 4.5s ease-in-out infinite; }
.scn-hopkins-realizes .shadow-accent { position:absolute; bottom:5%; left:20%; right:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%); animation: hr-shadow 6s ease-in-out infinite; }
.scn-hopkins-realizes .dust { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(255,220,150,.12) 10%, transparent 15%), radial-gradient(circle at 60% 60%, rgba(255,200,130,.08) 8%, transparent 12%), radial-gradient(circle at 80% 30%, rgba(255,180,100,.06) 6%, transparent 10%); animation: hr-dust 10s linear infinite; }
@keyframes hr-book { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(1deg) scale(1.01) } 100% { transform: rotate(2deg) scale(1) } }
@keyframes hr-lamp { 0% { box-shadow: 0 -10px 40px 15px rgba(255,190,80,.45), 0 -20px 60px 25px rgba(255,160,50,.2); } 25% { box-shadow: 0 -12px 45px 18px rgba(255,200,80,.55), 0 -25px 70px 30px rgba(255,160,50,.3); } 50% { box-shadow: 0 -8px 35px 12px rgba(255,180,70,.35), 0 -15px 50px 20px rgba(255,140,40,.15); } 75% { box-shadow: 0 -14px 50px 20px rgba(255,210,90,.6), 0 -30px 80px 35px rgba(255,160,50,.35); } 100% { box-shadow: 0 -10px 40px 15px rgba(255,190,80,.45), 0 -20px 60px 25px rgba(255,160,50,.2); } }
@keyframes hr-hopkins { 0% { transform: rotate(5deg) translateY(0); } 20% { transform: rotate(4deg) translateY(-3px); } 40% { transform: rotate(6deg) translateY(-1px); } 60% { transform: rotate(5deg) translateY(-2px); } 80% { transform: rotate(3deg) translateY(0); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes hr-holmes { 0% { transform: scaleX(-1) scaleY(1); } 50% { transform: scaleX(-1) scaleY(1.02); } 100% { transform: scaleX(-1) scaleY(1); } }
@keyframes hr-shadow { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes hr-dust { 0% { background-position: 0 0; } 100% { background-position: 30px 15px; } }

.scn-holmes-admits-points { background: linear-gradient(180deg, #2b1e18 0%, #1c110e 100%), radial-gradient(ellipse at 50% 80%, #3d2820 0%, transparent 60%); }
.scn-holmes-admits-points .backwall { position:absolute; inset:0; background: linear-gradient(180deg, #261b16 0%, #1a110d 100%); }
.scn-holmes-admits-points .table { position:absolute; bottom:0; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #3c2a21 0%, #2b1c15 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); }
.scn-holmes-admits-points .notebook { position:absolute; bottom:18%; left:45%; width:40px; height:28px; background: linear-gradient(180deg, #6a533d 0%, #483727 100%); transform: rotate(1deg); border-radius:4px; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: hap-book 12s ease-in-out infinite; }
.scn-holmes-admits-points .lamp { position:absolute; bottom:25%; left:30%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 20%, #ffd17a 0%, #d4913a 50%, #7a4b20 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 -10px 40px 15px rgba(255,190,80,.35), 0 -20px 60px 25px rgba(255,160,50,.15); animation: hap-lamp 8s ease-in-out infinite alternate; }
.scn-holmes-admits-points .holmes-figure { position:absolute; bottom:10%; right:20%; width:38px; height:68px; background: linear-gradient(180deg, #2b1e19 0%, #1a110e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: hap-breathe-slow 6s ease-in-out infinite; }
.scn-holmes-admits-points .watson-figure { position:absolute; bottom:10%; left:15%; width:36px; height:66px; background: linear-gradient(180deg, #2e201b 0%, #1a110e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(1); animation: hap-breathe-slow 7s ease-in-out infinite 0.5s; }
.scn-holmes-admits-points .dust-motes-slow { position:absolute; inset:0; background: radial-gradient(circle at 30% 50%, rgba(255,220,150,.08) 12%, transparent 15%), radial-gradient(circle at 70% 30%, rgba(255,200,130,.06) 10%, transparent 14%), radial-gradient(circle at 50% 70%, rgba(255,180,100,.04) 8%, transparent 12%); animation: hap-dust-slow 20s linear infinite; }
@keyframes hap-book { 0% { transform: rotate(1deg) scale(1); } 50% { transform: rotate(0.5deg) scale(1.01); } 100% { transform: rotate(1deg) scale(1); } }
@keyframes hap-lamp { 0% { box-shadow: 0 -10px 40px 15px rgba(255,190,80,.35), 0 -20px 60px 25px rgba(255,160,50,.15); } 50% { box-shadow: 0 -12px 45px 18px rgba(255,200,80,.4), 0 -22px 65px 28px rgba(255,160,50,.2); } 100% { box-shadow: 0 -10px 40px 15px rgba(255,190,80,.35), 0 -20px 60px 25px rgba(255,160,50,.15); } }
@keyframes hap-breathe-slow { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hap-dust-slow { 0% { background-position: 0 0; } 100% { background-position: 60px 30px; } }

.scn-holmes-other-details { background: linear-gradient(180deg, #2b1e18 0%, #1c110e 100%), radial-gradient(ellipse at 50% 75%, #3a2820 0%, transparent 60%); }
.scn-holmes-other-details .backwall { position:absolute; inset:0; background: linear-gradient(180deg, #241a15 0%, #180f0c 100%); }
.scn-holmes-other-details .table { position:absolute; bottom:0; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #3c2a21 0%, #2b1c15 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); }
.scn-holmes-other-details .notebook { position:absolute; bottom:18%; left:45%; width:40px; height:28px; background: linear-gradient(180deg, #6a533d 0%, #483727 100%); transform: rotate(1deg); border-radius:4px; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: hod-book 14s ease-in-out infinite; }
.scn-holmes-other-details .knife { position:absolute; bottom:20%; left:52%; width:35px; height:8px; background: linear-gradient(90deg, #8a7a6a 0%, #b5a89a 50%, #8a7a6a 100%); border-radius:4px; transform: rotate(15deg); box-shadow: 1px 1px 4px rgba(0,0,0,.4); animation: hod-knife 8s ease-in-out infinite; }
.scn-holmes-other-details .lamp { position:absolute; bottom:25%; left:30%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 20%, #ffd17a 0%, #d4913a 50%, #7a4b20 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 -10px 40px 15px rgba(255,190,80,.35), 0 -20px 60px 25px rgba(255,160,50,.15); animation: hod-lamp 9s ease-in-out infinite alternate; }
.scn-holmes-other-details .holmes-figure { position:absolute; bottom:10%; right:15%; width:38px; height:68px; background: linear-gradient(180deg, #2b1e19 0%, #1a110e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: hod-breathe 7s ease-in-out infinite; }
.scn-holmes-other-details .dust-motes-slow { position:absolute; inset:0; background: radial-gradient(circle at 40% 60%, rgba(255,220,150,.06) 10%, transparent 14%), radial-gradient(circle at 60% 20%, rgba(255,200,130,.05) 8%, transparent 12%), radial-gradient(circle at 20% 80%, rgba(255,180,100,.03) 6%, transparent 10%); animation: hod-dust 25s linear infinite; }
@keyframes hod-book { 0% { transform: rotate(1deg) scale(1); } 50% { transform: rotate(0.5deg) scale(1.005); } 100% { transform: rotate(1deg) scale(1); } }
@keyframes hod-knife { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(14deg) scale(1.01); } 100% { transform: rotate(15deg) scale(1); } }
@keyframes hod-lamp { 0% { box-shadow: 0 -10px 40px 15px rgba(255,190,80,.35), 0 -20px 60px 25px rgba(255,160,50,.15); } 50% { box-shadow: 0 -11px 42px 16px rgba(255,200,80,.38), 0 -21px 62px 26px rgba(255,160,50,.18); } 100% { box-shadow: 0 -10px 40px 15px rgba(255,190,80,.35), 0 -20px 60px 25px rgba(255,160,50,.15); } }
@keyframes hod-breathe { 0% { transform: scaleX(-1) scaleY(1); } 50% { transform: scaleX(-1) scaleY(1.015); } 100% { transform: scaleX(-1) scaleY(1); } }
@keyframes hod-dust { 0% { background-position: 0 0; } 100% { background-position: 80px 40px; } }

.scn-wife's-disdain {
  background: linear-gradient(180deg, #f2e6d0 0%, #d4c4a0 40%, #b8a080 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 70%);
  animation: wd-bg 8s ease-in-out infinite alternate;
}
.scn-wife's-disdain .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 50%, #a89878 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-wife's-disdain .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-wife's-disdain .window-light {
  position: absolute; top: 15%; left: 65%; width: 80px; height: 160px;
  background: radial-gradient(ellipse, rgba(255,240,200,0.6) 0%, rgba(255,230,180,0.2) 70%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 40px 20px rgba(255,240,200,0.3);
  animation: wd-light 6s ease-in-out infinite alternate;
}
.scn-wife's-disdain .woman-silhouette {
  position: absolute; bottom: 28%; left: 25%; width: 70px; height: 130px;
  background: linear-gradient(135deg, #2a2018 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: wd-body 4s ease-in-out infinite;
}
.scn-wife's-disdain .woman-head {
  position: absolute; bottom: 68%; left: 28%; width: 28px; height: 32px;
  background: radial-gradient(circle at 60% 40%, #1a1010 0%, #2a2018 70%);
  border-radius: 50% 50% 60% 40% / 50% 50% 60% 40%;
  transform: rotate(8deg);
  animation: wd-head 3s ease-in-out infinite alternate;
}
.scn-wife's-disdain .woman-hand {
  position: absolute; bottom: 40%; left: 38%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(15deg) translateY(-2px);
  animation: wd-hand 5s ease-in-out infinite;
}
.scn-wife's-disdain .shadow-stripe {
  position: absolute; top: 0; left: 50%; width: 40%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.08) 50%, transparent 100%);
  animation: wd-stripe 10s ease-in-out infinite alternate;
}
@keyframes wd-bg { 0%,100% { opacity:1 } 50% { opacity:0.92 } }
@keyframes wd-light { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.05); } 100% { opacity:0.7; transform: scaleY(0.95); } }
@keyframes wd-body { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes wd-head { 0% { transform: rotate(8deg); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(10deg); } }
@keyframes wd-hand { 0%,100% { transform: rotate(15deg) translateY(-2px); } 50% { transform: rotate(12deg) translateY(-4px); } }
@keyframes wd-stripe { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

.scn-husband-betrayed-her {
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 40%, #a09080 100%), radial-gradient(ellipse at 40% 60%, #dfd0b0 0%, transparent 60%);
}
.scn-husband-betrayed-her .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c8b8a0 0%, #a89078 50%, #8a7868 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-husband-betrayed-her .table {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: hb-table 7s ease-in-out infinite alternate;
}
.scn-husband-betrayed-her .lamp {
  position: absolute; bottom: 38%; left: 38%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%;
  transform: rotate(-5deg);
  animation: hb-lamp 4s ease-in-out infinite;
}
.scn-husband-betrayed-her .figure-betrayer {
  position: absolute; bottom: 25%; left: 20%; width: 65px; height: 120px;
  background: linear-gradient(180deg, #3a3030 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: hb-fig1 5s ease-in-out infinite alternate;
}
.scn-husband-betrayed-her .figure-betrayed {
  position: absolute; bottom: 22%; left: 55%; width: 60px; height: 115px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1a10 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform: rotate(-4deg);
  animation: hb-fig2 6s ease-in-out infinite;
}
.scn-husband-betrayed-her .bars {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 28px, rgba(0,0,0,0.15) 28px, rgba(0,0,0,0.15) 30px);
  mix-blend-mode: multiply;
}
.scn-husband-betrayed-her .shadow-pool {
  position: absolute; bottom: 0; left: 30%; width: 100px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: hb-shadow 9s ease-in-out infinite alternate;
}
@keyframes hb-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes hb-lamp { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg) scaleY(1.02); } }
@keyframes hb-fig1 { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(5px); } 100% { transform: rotate(3deg) translateX(0); } }
@keyframes hb-fig2 { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } }
@keyframes hb-shadow { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(0.9); } }

.scn-husband-escaped {
  background: linear-gradient(180deg, #1a1818 0%, #2a2828 30%, #3a3830 60%, #4a4840 100%), radial-gradient(ellipse at 40% 60%, #5a5040 0%, transparent 70%);
}
.scn-husband-escaped .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2828 0%, #1a1818 50%, #101010 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-husband-escaped .armchair {
  position: absolute; bottom: 15%; left: 30%; width: 110px; height: 90px;
  background: linear-gradient(180deg, #4a3a30 0%, #3a2820 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: he-chair 10s ease-in-out infinite alternate;
}
.scn-husband-escaped .oldman-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: he-body 4s ease-in-out infinite;
}
.scn-husband-escaped .cigarette-glow {
  position: absolute; bottom: 32%; left: 42%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ff8c40 0%, #c05a20 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 18px 10px rgba(255,140,64,0.6), 0 0 40px 20px rgba(200,90,30,0.3);
  animation: he-glow 2s ease-in-out infinite alternate;
}
.scn-husband-escaped .smoke-1 {
  position: absolute; bottom: 38%; left: 40%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,160,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: he-smoke1 7s linear infinite;
}
.scn-husband-escaped .smoke-2 {
  position: absolute; bottom: 36%; left: 44%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,160,0.2) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(6px);
  animation: he-smoke2 9s linear infinite;
  animation-delay: -3s;
}
.scn-husband-escaped .hat-brim {
  position: absolute; bottom: 55%; left: 32%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1010 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: rotate(-5deg);
  animation: he-hat 6s ease-in-out infinite alternate;
}
@keyframes he-chair { 0%,100% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-2px); } }
@keyframes he-body { 0%,100% { transform: rotate(2deg); } 50% { transform: rotate(0deg) translateY(-1px); } }
@keyframes he-glow { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes he-smoke1 { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 50% { transform: translate(8px,-30px) scale(1.5); opacity:0.2; } 100% { transform: translate(-4px,-60px) scale(2); opacity:0; } }
@keyframes he-smoke2 { 0% { transform: translate(0,0) scale(1); opacity:0.4; } 50% { transform: translate(-6px,-20px) scale(1.3); opacity:0.1; } 100% { transform: translate(4px,-50px) scale(1.8); opacity:0; } }
@keyframes he-hat { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg) translateX(2px); } }

.scn-alexis-the-beloved {
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 30%, #b8a898 60%, #a09080 100%), radial-gradient(ellipse at 50% 40%, #f0e0c8 0%, transparent 60%);
}
.scn-alexis-the-beloved .library-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d0c0a8 0%, #b8a890 50%, #a09078 100%);
  border-radius: 10% 10% 0 0 / 15% 15% 0 0;
}
.scn-alexis-the-beloved .desk {
  position: absolute; bottom: 15%; left: 25%; width: 140px; height: 35px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: at-desk 8s ease-in-out infinite alternate;
}
.scn-alexis-the-beloved .paper-1 {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 2%;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: at-paper1 6s ease-in-out infinite;
}
.scn-alexis-the-beloved .paper-2 {
  position: absolute; bottom: 22%; left: 45%; width: 35px; height: 28px;
  background: linear-gradient(135deg, #e8d4b0 0%, #c8b490 100%);
  border-radius: 2%;
  transform: rotate(-7deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: at-paper2 7s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-alexis-the-beloved .alexis-silhouette {
  position: absolute; bottom: 25%; left: 55%; width: 55px; height: 100px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-1deg);
  animation: at-body 5s ease-in-out infinite alternate;
}
.scn-alexis-the-beloved .letter-glow {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #c09040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 12px rgba(255,208,128,0.5), 0 0 40px 20px rgba(200,120,40,0.2);
  animation: at-glow 3s ease-in-out infinite alternate;
}
.scn-alexis-the-beloved .inkwell {
  position: absolute; bottom: 20%; left: 35%; width: 16px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #3a3028 0%, #1a1010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: at-ink 11s ease-in-out infinite;
}
@keyframes at-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes at-paper1 { 0%,100% { transform: rotate(5deg) translate(0,0); } 50% { transform: rotate(3deg) translate(2px,-3px); } }
@keyframes at-paper2 { 0%,100% { transform: rotate(-7deg) translate(0,0); } 50% { transform: rotate(-5deg) translate(-2px,-2px); } }
@keyframes at-body { 0% { transform: rotate(-1deg); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-2deg); } }
@keyframes at-glow { 0% { opacity:0.6; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(0.9); } }
@keyframes at-ink { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95) translateY(1px); } }

/* Scene: holmes-plans-different */
.scn-holmes-plans-different {
  background: linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 40%, #3a4a4a 100%), radial-gradient(ellipse at 50% 0%, #6a7a7a 0%, transparent 60%);
}
.scn-holmes-plans-different .street-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 0; }
.scn-holmes-plans-different .sky-back { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 50%, #4a5a5a 100%); animation: hp-sky 12s ease-in-out infinite alternate; }
.scn-holmes-plans-different .building-l { position:absolute; bottom:25%; left:0; width:35%; height:60%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 4% 8% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3); }
.scn-holmes-plans-different .building-r { position:absolute; bottom:25%; right:0; width:40%; height:70%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 8% 4% 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,0.3); }
.scn-holmes-plans-different .street-lamp { position:absolute; bottom:25%; left:50%; width:6px; height:60px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 4px; transform: translateX(-50%); }
.scn-holmes-plans-different .street-lamp::after { content:''; position:absolute; top:0; left:50%; width:12px; height:12px; background: radial-gradient(circle, #e0d080 0%, #b0a060 70%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(200,200,100,0.4); animation: hp-lamp 3s ease-in-out infinite alternate; transform: translate(-50%, -50%); }
.scn-holmes-plans-different .figure-a { position:absolute; bottom:25%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.05); animation: hp-walk-a 6s ease-in-out infinite; }
.scn-holmes-plans-different .figure-b { position:absolute; bottom:25%; left:55%; width:22px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.95); animation: hp-walk-b 6s ease-in-out infinite 1.5s; }
.scn-holmes-plans-different .cloud-1 { position:absolute; top:15%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(6px); animation: hp-drift 40s linear infinite; }
.scn-holmes-plans-different .cloud-2 { position:absolute; top:25%; right:20%; width:60px; height:14px; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter: blur(5px); animation: hp-drift 55s linear infinite reverse; }

@keyframes hp-sky { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.75; } }
@keyframes hp-lamp { 0% { box-shadow: 0 0 20px 8px rgba(200,200,100,0.3); opacity:0.85; } 50% { box-shadow: 0 0 30px 15px rgba(220,220,120,0.5); opacity:1; } 100% { box-shadow: 0 0 22px 10px rgba(200,200,100,0.35); opacity:0.9; } }
@keyframes hp-walk-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes hp-walk-b { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-6px) rotate(-1deg); } 50% { transform: translateX(-12px) rotate(2deg); } 75% { transform: translateX(-18px) rotate(-2deg); } 100% { transform: translateX(-24px) rotate(0deg); } }
@keyframes hp-drift { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

/* Scene: tracing-busts-source */
.scn-tracing-busts-source {
  background: linear-gradient(180deg, #c8b890 0%, #b0a070 40%, #988060 100%), radial-gradient(ellipse at 50% 30%, #d8c8a8 0%, transparent 60%);
}
.scn-tracing-busts-source .wall-back { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #d0c0a0 0%, #b8a888 100%); }
.scn-tracing-busts-source .shelf-top { position:absolute; top:20%; left:10%; right:10%; height:4px; background: #5a4a3a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-tracing-busts-source .shelf-mid { position:absolute; top:40%; left:10%; right:10%; height:4px; background: #5a4a3a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-tracing-busts-source .bust-left { position:absolute; bottom:35%; left:20%; width:40px; height:50px; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform: scale(1); animation: tb-observe 8s ease-in-out infinite alternate; }
.scn-tracing-busts-source .bust-left::after { content:''; position:absolute; bottom:0; left:50%; width:20px; height:10px; background: #8a7a6a; border-radius: 30% 30% 0 0; transform: translateX(-50%); }
.scn-tracing-busts-source .bust-right { position:absolute; bottom:20%; right:15%; width:45px; height:55px; background: linear-gradient(180deg, #b8a88a 0%, #988070 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform: scale(0.9); animation: tb-observe 10s ease-in-out infinite alternate-reverse; }
.scn-tracing-busts-source .bust-right::after { content:''; position:absolute; bottom:0; left:50%; width:22px; height:12px; background: #7a6a5a; border-radius: 30% 30% 0 0; transform: translateX(-50%); }
.scn-tracing-busts-source .counter { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.4); }
.scn-tracing-busts-source .figure-shop { position:absolute; bottom:10%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tb-turn 6s ease-in-out infinite; }
.scn-tracing-busts-source .window-light { position:absolute; top:10%; left:5%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.4) 0%, transparent 70%); border-radius: 10%; box-shadow: 0 0 40px 20px rgba(255,240,200,0.2); animation: tb-glow 4s ease-in-out infinite alternate; }

@keyframes tb-observe { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes tb-turn { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(8px) rotate(-1deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes tb-glow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* Scene: morse-hudson-interview */
.scn-morse-hudson-interview {
  background: linear-gradient(180deg, #b8a888 0%, #a09078 40%, #887868 100%), radial-gradient(ellipse at 30% 40%, #d8c8a8 0%, transparent 60%);
}
.scn-morse-hudson-interview .wall-deep { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #c8b898 0%, #b09878 100%); }
.scn-morse-hudson-interview .picture-frame-l { position:absolute; top:15%; left:5%; width:25%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border: 6px solid #3a2a1a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); transform: rotate(-2deg); animation: mh-sway 8s ease-in-out infinite alternate; }
.scn-morse-hudson-interview .picture-frame-l::before { content:''; position:absolute; top:8%; left:8%; width:84%; height:84%; background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 2px; }
.scn-morse-hudson-interview .picture-frame-r { position:absolute; top:20%; right:8%; width:20%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border: 6px solid #3a2a1a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); transform: rotate(3deg); animation: mh-sway 10s ease-in-out infinite alternate-reverse; }
.scn-morse-hudson-interview .picture-frame-r::before { content:''; position:absolute; top:8%; left:8%; width:84%; height:84%; background: linear-gradient(135deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 2px; }
.scn-morse-hudson-interview .counter-wood { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.5); }
.scn-morse-hudson-interview .figure-stout { position:absolute; bottom:10%; left:40%; width:24px; height:45px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(1.2); animation: mh-spin 5s ease-in-out infinite; }
.scn-morse-hudson-interview .hand-papers { position:absolute; bottom:18%; left:50%; width:30px; height:4px; background: #e0c8a8; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: mh-scatter 3s ease-in-out infinite alternate; }
.scn-morse-hudson-interview .glow-lamp { position:absolute; bottom:45%; left:20%; width:12px; height:12px; background: radial-gradient(circle, #e0d080 0%, #c8b060 70%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(200,180,100,0.5); animation: mh-lamp 4s ease-in-out infinite alternate; }

@keyframes mh-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes mh-spin { 0% { transform: scaleX(1.2) translateY(0); } 30% { transform: scaleX(1.2) translateY(-2px); } 60% { transform: scaleX(1.15) translateY(0); } 100% { transform: scaleX(1.2) translateY(0); } }
@keyframes mh-scatter { 0% { transform: translateX(0) rotate(0deg); opacity:0.8; } 50% { transform: translateX(-4px) rotate(5deg); opacity:0.9; } 100% { transform: translateX(4px) rotate(-5deg); opacity:0.7; } }
@keyframes mh-lamp { 0% { box-shadow: 0 0 30px 15px rgba(200,180,100,0.4); opacity:0.9; } 50% { box-shadow: 0 0 40px 20px rgba(220,200,120,0.6); opacity:1; } 100% { box-shadow: 0 0 35px 18px rgba(200,180,100,0.5); opacity:0.85; } }

/* Scene: gelder-and-co */
.scn-gelder-and-co {
  background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 50%, #5a6a5a 100%), radial-gradient(ellipse at 50% 0%, #9aaa9a 0%, transparent 70%);
}
.scn-gelder-and-co .sky-out { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #a0b0a0 0%, #809080 60%, #6a7a6a 100%); animation: gc-sky 15s ease-in-out infinite alternate; }
.scn-gelder-and-co .shop-front { position:absolute; bottom:20%; left:10%; right:10%; height:55%; background: linear-gradient(180deg, #b8a888 0%, #988068 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2); }
.scn-gelder-and-co .sign-board { position:absolute; bottom:60%; left:25%; right:25%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: gc-sway 9s ease-in-out infinite alternate; }
.scn-gelder-and-co .sign-board::after { content:''; position:absolute; top:10%; left:10%; width:80%; height:80%; background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%); border-radius: 6px; }
.scn-gelder-and-co .door-arch { position:absolute; bottom:20%; left:40%; right:40%; height:50%; background: #3a2a1a; border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); }
.scn-gelder-and-co .door-arch::after { content:''; position:absolute; top:20%; left:20%; width:60%; height:60%; background: radial-gradient(ellipse at 50% 100%, rgba(255,240,200,0.3) 0%, transparent 70%); }
.scn-gelder-and-co .pavement { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); }
.scn-gelder-and-co .figure-walk { position:absolute; bottom:12%; left:20%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.1); animation: gc-walk 7s ease-in-out infinite; }
.scn-gelder-and-co .horse-cart { position:absolute; bottom:18%; right:15%; width:50px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: gc-trot 8s ease-in-out infinite; }
.scn-gelder-and-co .horse-cart::before { content:''; position:absolute; bottom:0; left:-15px; width:20px; height:15px; background: #1a1a2a; border-radius: 50% 50% 20% 20%; transform: scale(0.8); }
.scn-gelder-and-co .lamp-post { position:absolute; bottom:20%; left:55%; width:4px; height:50px; background: #808080; border-radius: 2px; transform: translateX(-50%); }
.scn-gelder-and-co .lamp-post::after { content:''; position:absolute; top:0; left:50%; width:10px; height:10px; background: radial-gradient(circle, #e0d080 0%, #b0a060 70%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(200,200,100,0.3); animation: gc-lamp 3s ease-in-out infinite alternate; transform: translate(-50%, -50%); }

@keyframes gc-sky { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.7; } }
@keyframes gc-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes gc-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(1deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(18px) rotate(2deg); } 100% { transform: translateX(24px) rotate(0deg); } }
@keyframes gc-trot { 0% { transform: translateX(0); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(0); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes gc-lamp { 0% { box-shadow: 0 0 20px 10px rgba(200,200,100,0.3); opacity:0.85; } 50% { box-shadow: 0 0 30px 15px rgba(220,220,120,0.5); opacity:1; } 100% { box-shadow: 0 0 25px 12px rgba(200,200,100,0.35); opacity:0.9; } }

/* beppo-tracks-remaining */
.scn-beppo-tracks-remaining {
  background: linear-gradient(165deg, #f7f0e6 0%, #e8dcc8 60%, #d4c4a8 100%), radial-gradient(ellipse at 30% 70%, #f0e6d8 0%, transparent 80%);
}
.scn-beppo-tracks-remaining .bg {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fff8ee 0%, #e8dcc8 100%);
  border-bottom: 2px solid #c4b49a;
}
.scn-beppo-tracks-remaining .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c8b89e 0%, #a8987e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.08);
}
.scn-beppo-tracks-remaining .desk {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #b8a080 0%, #9c8468 100%);
  border-radius: 2% / 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  animation: btr-desk 6s ease-in-out infinite alternate;
}
.scn-beppo-tracks-remaining .bust {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 70%, #8c7c64 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
  animation: btr-bust 4s ease-in-out infinite;
}
.scn-beppo-tracks-remaining .document {
  position: absolute; bottom: 32%; left: 35%; width: 40px; height: 30px;
  background: #fcf4e8;
  transform: rotate(3deg);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: btr-doc 8s ease-in-out infinite alternate;
}
.scn-beppo-tracks-remaining .lamp-glow {
  position: absolute; bottom: 45%; left: 60%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,230,180,0.6) 0%, rgba(255,220,160,0.2) 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(10px);
  animation: btr-lamp 5s ease-in-out infinite alternate;
}
.scn-beppo-tracks-remaining .motes {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(255,255,240,0.8) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-beppo-tracks-remaining .motes-a {
  top: 20%; left: 25%;
  animation: btr-mote-a 30s linear infinite;
}
.scn-beppo-tracks-remaining .motes-b {
  top: 35%; right: 30%;
  animation: btr-mote-b 40s linear infinite reverse;
}
@keyframes btr-desk {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.002); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes btr-bust {
  0% { transform: translateX(-50%) rotate(-1deg); }
  33% { transform: translateX(-50%) rotate(0deg) scale(1.01); }
  66% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes btr-doc {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(4deg) translateY(0); }
}
@keyframes btr-lamp {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes btr-mote-a {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  25% { transform: translate(20px, -10px) scale(1.3); opacity: 0.8; }
  50% { transform: translate(40px, 5px) scale(0.9); opacity: 0.4; }
  75% { transform: translate(60px, -15px) scale(1.1); opacity: 0.7; }
  100% { transform: translate(80px, 0) scale(1); opacity: 0.6; }
}
@keyframes btr-mote-b {
  0% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  33% { transform: translate(-15px, 10px) scale(1.2); opacity: 0.7; }
  66% { transform: translate(-30px, -5px) scale(0.8); opacity: 0.4; }
  100% { transform: translate(-45px, 0) scale(1); opacity: 0.5; }
}

/* confederate-photo */
.scn-confederate-photo {
  background: linear-gradient(170deg, #f2eee6 0%, #e2d6c4 60%, #cebea4 100%), radial-gradient(ellipse at 40% 50%, #faf2e8 0%, transparent 70%);
}
.scn-confederate-photo .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fff8f0 0%, #e8dcc8 50%, #d4c4a8 100%);
}
.scn-confederate-photo .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%);
  border-bottom: 2px solid #c0b098;
}
.scn-confederate-photo .table {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #b8a080 0%, #9c8468 100%);
  border-radius: 0 0 5% 5%;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.15);
}
.scn-confederate-photo .frame {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #d4c4a8, #b8a080, #a0886c);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: cph-frame 8s ease-in-out infinite alternate;
}
.scn-confederate-photo .photo {
  position: absolute; bottom: 37%; left: 50%; width: 50px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ece0d0 0%, #d4c0a8 50%, #b8a080 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.1);
  animation: cph-photo 12s ease-in-out infinite;
}
.scn-confederate-photo .shadow {
  position: absolute; bottom: 30%; left: 48%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.1) 0%, transparent 80%);
  filter: blur(4px);
  animation: cph-shadow 6s ease-in-out infinite alternate;
}
.scn-confederate-photo .dust {
  position: absolute; width: 4px; height: 4px;
  background: rgba(255,255,240,0.6);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-confederate-photo .dust-1 {
  top: 15%; left: 20%;
  animation: cph-dust1 25s linear infinite;
}
.scn-confederate-photo .dust-2 {
  top: 30%; right: 25%;
  animation: cph-dust2 35s linear infinite reverse;
}
@keyframes cph-frame {
  0% { transform: translateX(-50%) rotate(-0.5deg); }
  50% { transform: translateX(-50%) rotate(0.5deg) scale(1.01); }
  100% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes cph-photo {
  0% { background: linear-gradient(180deg, #ece0d0 0%, #d4c0a8 50%, #b8a080 100%); }
  33% { background: linear-gradient(180deg, #f0e4d4 0%, #dcc8b4 50%, #c0a88c 100%); }
  66% { background: linear-gradient(180deg, #e8dcc8 0%, #d0bca0 50%, #b09878 100%); }
  100% { background: linear-gradient(180deg, #ece0d0 0%, #d4c0a8 50%, #b8a080 100%); }
}
@keyframes cph-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.3; }
  100% { transform: scaleX(0.9); opacity: 0.6; }
}
@keyframes cph-dust1 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  25% { transform: translate(15px, -8px) scale(1.5); opacity: 0.8; }
  50% { transform: translate(30px, 5px) scale(0.8); opacity: 0.3; }
  75% { transform: translate(45px, -12px) scale(1.2); opacity: 0.6; }
  100% { transform: translate(60px, 0) scale(1); opacity: 0.5; }
}
@keyframes cph-dust2 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  33% { transform: translate(-10px, 5px) scale(1.3); opacity: 0.7; }
  66% { transform: translate(-20px, -5px) scale(0.9); opacity: 0.4; }
  100% { transform: translate(-30px, 0) scale(1); opacity: 0.4; }
}

/* deduction-of-pearl */
.scn-deduction-of-pearl {
  background: linear-gradient(170deg, #f5f0e8 0%, #e0d4c0 60%, #ccbba0 100%), radial-gradient(ellipse at 60% 50%, #faf6ee 0%, transparent 70%);
}
.scn-deduction-of-pearl .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fff8f0 0%, #ece0d0 60%, #dcc8b4 100%);
}
.scn-deduction-of-pearl .table {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #c8b49c 0%, #a88c70 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.1);
}
.scn-deduction-of-pearl .bust-left {
  position: absolute; bottom: 40%; left: 30%; width: 28px; height: 42px;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 70%, #8c7c64 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: dop-bustl 5s ease-in-out infinite alternate;
}
.scn-deduction-of-pearl .bust-right {
  position: absolute; bottom: 42%; left: 42%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 70%, #8c7c64 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: dop-bustr 6s ease-in-out infinite;
}
.scn-deduction-of-pearl .pearl {
  position: absolute; bottom: 45%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle at 35% 35%, #ffffff, #e8e0d0, #b0a090);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,255,240,0.5), 0 0 40px 12px rgba(255,255,240,0.2);
  animation: dop-pearl 4s ease-in-out infinite alternate;
}
.scn-deduction-of-pearl .papers {
  position: absolute; bottom: 30%; left: 15%; width: 50px; height: 35px;
  background: #fcf4e8;
  transform: rotate(5deg);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: dop-papers 10s ease-in-out infinite alternate;
}
.scn-deduction-of-pearl .glass {
  position: absolute; bottom: 35%; left: 60%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, rgba(200,200,220,0.1) 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: dop-glass 7s ease-in-out infinite;
}
@keyframes dop-bustl {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-14deg) translateY(-2px); }
  100% { transform: rotate(-16deg) translateY(0); }
}
@keyframes dop-bustr {
  0% { transform: rotate(10deg) scale(1); }
  33% { transform: rotate(11deg) scale(1.02); }
  66% { transform: rotate(9deg) scale(0.98); }
  100% { transform: rotate(10deg) scale(1); }
}
@keyframes dop-pearl {
  0% { transform: scale(0.95); opacity: 0.8; box-shadow: 0 0 10px 3px rgba(255,255,240,0.4); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 30px 8px rgba(255,255,240,0.6); }
  100% { transform: scale(0.95); opacity: 0.9; box-shadow: 0 0 15px 4px rgba(255,255,240,0.5); }
}
@keyframes dop-papers {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-3px); }
  100% { transform: rotate(6deg) translateY(0); }
}
@keyframes dop-glass {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  25% { transform: translate(3px, -2px) scale(1.1); opacity: 0.5; }
  50% { transform: translate(0, 0) scale(0.9); opacity: 0.4; }
  75% { transform: translate(-3px, 1px) scale(1.05); opacity: 0.5; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.3; }
}

/* final-two-busts */
.scn-final-two-busts {
  background: linear-gradient(165deg, #f7f2ea 0%, #e4d8c4 60%, #d0c0a8 100%), radial-gradient(ellipse at 50% 30%, #faf6ee 0%, transparent 70%);
}
.scn-final-two-busts .bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fff8f0 0%, #ece0d0 100%);
  border-bottom: 2px solid #c8b89e;
}
.scn-final-two-busts .shelf {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 6%;
  background: linear-gradient(180deg, #b8a080 0%, #9c8468 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.scn-final-two-busts .bust-left {
  position: absolute; bottom: 25%; left: 28%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 70%, #8c7c64 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
  animation: ftb-bustl 5s ease-in-out infinite alternate;
}
.scn-final-two-busts .bust-right {
  position: absolute; bottom: 25%; left: 58%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 70%, #8c7c64 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
  animation: ftb-bustr 7s ease-in-out infinite;
}
.scn-final-two-busts .hand {
  position: absolute; bottom: 28%; left: 48%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #e8d4b8 0%, #c8a888 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ftb-hand 4s ease-in-out infinite alternate;
}
.scn-final-two-busts .light {
  position: absolute; bottom: 40%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,230,180,0.4) 0%, rgba(255,220,160,0.1) 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(12px);
  animation: ftb-light 6s ease-in-out infinite alternate;
}
.scn-final-two-busts .motes {
  position: absolute; width: 5px; height: 5px;
  background: radial-gradient(circle, rgba(255,255,240,0.7) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1.5px);
}
.scn-final-two-busts .motes-a {
  top: 15%; left: 35%;
  animation: ftb-mote-a 30s linear infinite;
}
.scn-final-two-busts .motes-b {
  top: 25%; right: 20%;
  animation: ftb-mote-b 40s linear infinite reverse;
}
@keyframes ftb-bustl {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-1deg) scale(1.01); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ftb-bustr {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(1deg) scale(1.02); }
  66% { transform: translateX(-1px) rotate(-1deg) scale(0.98); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ftb-hand {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ftb-light {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes ftb-mote-a {
  0% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  25% { transform: translate(15px, -8px) scale(1.3); opacity: 0.7; }
  50% { transform: translate(30px, 5px) scale(0.8); opacity: 0.3; }
  75% { transform: translate(45px, -10px) scale(1.1); opacity: 0.6; }
  100% { transform: translate(60px, 0) scale(1); opacity: 0.5; }
}
@keyframes ftb-mote-b {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  33% { transform: translate(-12px, 6px) scale(1.2); opacity: 0.7; }
  66% { transform: translate(-24px, -4px) scale(0.9); opacity: 0.4; }
  100% { transform: translate(-36px, 0) scale(1); opacity: 0.4; }
}

/* ---- manager-identifies-beppo ---- */
.scn-manager-identifies-beppo {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a8 50%, #b89b7a 100%),
              radial-gradient(ellipse at 20% 80%, #f0e0c0 0%, transparent 60%);
}
.scn-manager-identifies-beppo .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #fdf4e3 0%, #e8dcc8 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.08); z-index:0;
}
.scn-manager-identifies-beppo .desk {
  position:absolute; bottom:12%; left:15%; right:15%; height:30%;
  background: linear-gradient(180deg, #8b6f4e 0%, #5a422c 100%);
  border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  z-index:1;
}
.scn-manager-identifies-beppo .photo {
  position:absolute; bottom:22%; left:35%; width:50px; height:60px;
  background: linear-gradient(135deg, #eee, #ccc);
  border: 4px solid #6b4a2c; border-radius: 4px;
  box-shadow: 0 0 12px rgba(0,0,0,0.3);
  z-index:2; animation: mib-photo 6s ease-in-out infinite alternate;
}
.scn-manager-identifies-beppo .figure {
  position:absolute; bottom:20%; left:50%; width:40px; height:80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; z-index:3;
  animation: mib-figure 4s ease-in-out infinite;
}
.scn-manager-identifies-beppo .lamp {
  position:absolute; bottom:30%; left:20%; width:12px; height:12px;
  background: radial-gradient(circle, #ffd680 0%, #c08040 70%);
  border-radius:50%; box-shadow: 0 0 24px 8px rgba(255,214,128,0.6);
  z-index:4; animation: mib-lamp 2s ease-in-out infinite alternate;
}
.scn-manager-identifies-beppo .shadow {
  position:absolute; bottom:12%; left:40%; width:80px; height:10px;
  background: rgba(0,0,0,0.3); border-radius:50%;
  filter: blur(6px); z-index:0; animation: mib-shadow 4s ease-in-out infinite;
}
@keyframes mib-photo {
  0% { transform: scale(1) rotate(1deg); }
  50% { transform: scale(1.05) rotate(-1deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes mib-figure {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes mib-lamp {
  0% { box-shadow: 0 0 18px 4px #c08040; opacity:0.8; }
  100% { box-shadow: 0 0 30px 10px #ffd680; opacity:1; }
}
@keyframes mib-shadow {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

/* ---- lunch-and-press ---- */
.scn-lunch-and-press {
  background: linear-gradient(180deg, #fff8e7 0%, #f5e6d0 50%, #e0ccb0 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e7 0%, transparent 60%);
}
.scn-lunch-and-press .tablecloth {
  position:absolute; inset:10% 5% 5% 5%;
  background: linear-gradient(135deg, #fef9f0 0%, #e8ddce 100%);
  border-radius: 20px; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.scn-lunch-and-press .newspaper {
  position:absolute; top:25%; left:20%; width:60%; height:30%;
  background: linear-gradient(135deg, #f5f0e0 0%, #d9cfb0 100%);
  border-radius: 0 0 8px 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  transform: rotate(-1deg);
  animation: lap-paper 12s ease-in-out infinite alternate;
}
.scn-lunch-and-press .cup {
  position:absolute; top:45%; left:30%; width:20px; height:24px;
  background: linear-gradient(180deg, #f0e8d8 0%, #c8b89a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: lap-cup 8s ease-in-out infinite;
}
.scn-lunch-and-press .plate {
  position:absolute; top:50%; left:50%; width:40px; height:15px;
  background: radial-gradient(ellipse, #f5f0e0 0%, #d9cfb0 80%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-lunch-and-press .bread {
  position:absolute; top:48%; left:52%; width:18px; height:12px;
  background: linear-gradient(180deg, #c8a67a 0%, #a08050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(20deg);
  animation: lap-bread 10s ease-in-out infinite alternate;
}
.scn-lunch-and-press .hand {
  position:absolute; top:40%; left:25%; width:16px; height:30px;
  background: linear-gradient(180deg, #d4a88a 0%, #b0886a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lap-hand 4s ease-in-out infinite;
}
@keyframes lap-paper {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes lap-cup {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes lap-bread {
  0% { transform: translateY(0) rotate(15deg); }
  100% { transform: translateY(-2px) rotate(25deg); }
}
@keyframes lap-hand {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(8px) rotate(5deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}

/* ---- harding-brothers ---- */
.scn-harding-brothers {
  background: linear-gradient(180deg, #f5f0e8 0%, #e0d6c8 50%, #c8b8a0 100%),
              radial-gradient(ellipse at 80% 40%, #f2e8d8 0%, transparent 50%);
}
.scn-harding-brothers .desk {
  position:absolute; bottom:15%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #6b4a2c 0%, #3a2a1a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-harding-brothers .chair {
  position:absolute; bottom:20%; left:15%; width:30px; height:40px;
  background: linear-gradient(180deg, #5a402a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(5deg);
  animation: hb-chair 6s ease-in-out infinite alternate;
}
.scn-harding-brothers .figure {
  position:absolute; bottom:20%; left:25%; width:35px; height:70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: hb-figure 5s ease-in-out infinite;
}
.scn-harding-brothers .papers {
  position:absolute; bottom:30%; left:35%; width:40px; height:15px;
  background: linear-gradient(135deg, #f5f0e0 0%, #d9cfb0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-3deg);
  animation: hb-papers 8s ease-in-out infinite alternate;
}
.scn-harding-brothers .lamp {
  position:absolute; bottom:35%; left:50%; width:10px; height:15px;
  background: radial-gradient(circle at 50% 30%, #ffd680 0%, #c08040 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,214,128,0.5);
  animation: hb-lamp 3s ease-in-out infinite alternate;
}
.scn-harding-brothers .window {
  position:absolute; top:10%; right:10%; width:60px; height:50px;
  background: linear-gradient(135deg, #e0f0ff 0%, #b0d0ee 100%);
  border: 8px solid #6b4a2c; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.4);
  animation: hb-window 15s ease-in-out infinite alternate;
}
@keyframes hb-chair {
  0% { transform: rotate(3deg) translateY(0); }
  100% { transform: rotate(7deg) translateY(-2px); }
}
@keyframes hb-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hb-papers {
  0% { transform: translateY(0) rotate(-5deg); }
  100% { transform: translateY(-3px) rotate(0); }
}
@keyframes hb-lamp {
  0% { box-shadow: 0 0 12px 3px #c08040; opacity:0.7; }
  100% { box-shadow: 0 0 28px 8px #ffd680; opacity:1; }
}
@keyframes hb-window {
  0% { opacity:0.8; }
  100% { opacity:1; }
}

/* ---- holmes-satisfied ---- */
.scn-holmes-satisfied {
  background: linear-gradient(135deg, #f0e8d8 0%, #d8ccb8 50%, #c0b09a 100%),
              radial-gradient(ellipse at 30% 70%, #f5efe0 0%, transparent 60%);
}
.scn-holmes-satisfied .room-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #fdf5e6 0%, #ede0cc 100%);
}
.scn-holmes-satisfied .sofa {
  position:absolute; bottom:10%; left:15%; right:15%; height:25%;
  background: linear-gradient(180deg, #8b6f4e 0%, #5a422c 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: hs-sofa 7s ease-in-out infinite alternate;
}
.scn-holmes-satisfied .holmes {
  position:absolute; bottom:20%; left:25%; width:35px; height:75px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: hs-holmes 5s ease-in-out infinite;
}
.scn-holmes-satisfied .watson {
  position:absolute; bottom:20%; left:45%; width:35px; height:70px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: hs-watson 5s ease-in-out infinite 0.3s;
}
.scn-holmes-satisfied .notes {
  position:absolute; bottom:28%; left:35%; width:30px; height:20px;
  background: linear-gradient(135deg, #f5f0e0 0%, #d9cfb0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(5deg);
  animation: hs-notes 8s ease-in-out infinite alternate;
}
.scn-holmes-satisfied .pen {
  position:absolute; bottom:30%; left:40%; width:4px; height:16px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  transform: rotate(30deg);
  animation: hs-pen 4s ease-in-out infinite alternate;
}
@keyframes hs-sofa {
  0% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes hs-holmes {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hs-watson {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hs-notes {
  0% { transform: translateY(0) rotate(3deg); }
  100% { transform: translateY(-2px) rotate(7deg); }
}
@keyframes hs-pen {
  0% { transform: rotate(25deg) translateY(0); }
  100% { transform: rotate(35deg) translateY(-2px); }
}

/* carruthers-love-confession - warm dim interior */
.scn-clc { background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 40%, #0d0804 100%), radial-gradient(ellipse at 50% 60%, #3a2212 0%, transparent 60%); }
.scn-clc .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2212 0%, transparent 100%); animation: clc-bg 12s ease-in-out infinite alternate; }
.scn-clc .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0e06 0%, #2a1a0e 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,.6); }
.scn-clc .lamp-glow { position:absolute; bottom:40%; left:30%; width:60px; height:80px; background: radial-gradient(circle at 50% 30%, #f0a050 0%, #c07030 40%, transparent 70%); border-radius:50%; filter: blur(12px); animation: clc-lamp-glow 4s ease-in-out infinite alternate; }
.scn-clc .lamp-body { position:absolute; bottom:42%; left:30%; width:20px; height:40px; margin-left:-10px; background: linear-gradient(180deg, #c08050 0%, #8a6040 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: clc-lamp-body 3s ease-in-out infinite; }
.scn-clc .figure { position:absolute; bottom:20%; left:50%; width:40px; height:90px; margin-left:-20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: clc-figure 8s ease-in-out infinite; }
.scn-clc .window { position:absolute; bottom:35%; right:15%; width:70px; height:90px; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border: 4px solid #5a3a2a; border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: clc-window 15s linear infinite; }
.scn-clc .bicycle { position:absolute; bottom:22%; right:10%; width:50px; height:30px; background: radial-gradient(circle at 30% 50%, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 0 0; clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%); opacity:0.6; animation: clc-bike 20s linear infinite; }
.scn-clc .shadow { position:absolute; bottom:12%; left:40%; width:80px; height:20px; background: radial-gradient(ellipse, #000 0%, transparent 70%); opacity:0.5; animation: clc-shadow 6s ease-in-out infinite alternate; }
@keyframes clc-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes clc-lamp-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes clc-lamp-body { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes clc-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes clc-window { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes clc-bike { 0% { transform: translateX(0) rotate(0) } 100% { transform: translateX(-150px) rotate(-10deg) } }
@keyframes clc-shadow { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.2) } }

/* holmes-questions-carruthers - tense dim interior */
.scn-hqc { background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 50%, #05050e 100%), radial-gradient(ellipse at 30% 50%, #2a2a4e 0%, transparent 70%); }
.scn-hqc .bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2a3e 0%, transparent 100%); animation: hqc-bg 8s ease-in-out infinite alternate; }
.scn-hqc .table { position:absolute; bottom:15%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 20% 20% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-hqc .lamp { position:absolute; bottom:25%; left:35%; width:30px; height:50px; margin-left:-15px; background: linear-gradient(180deg, #b08050 0%, #705030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px #b08050; animation: hqc-lamp 2s ease-in-out infinite alternate; }
.scn-hqc .holmes { position:absolute; bottom:18%; left:25%; width:45px; height:90px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: hqc-holmes 3s ease-in-out infinite; }
.scn-hqc .carruthers { position:absolute; bottom:18%; right:25%; width:50px; height:85px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%; animation: hqc-carruthers 4s ease-in-out infinite; }
.scn-hqc .lamp-glow { position:absolute; bottom:28%; left:35%; width:80px; height:80px; margin-left:-40px; background: radial-gradient(circle, #f0a050 0%, #c07030 30%, transparent 70%); filter: blur(10px); animation: hqc-lamp-glow 1.5s ease-in-out infinite alternate; }
.scn-hqc .shadow-left { position:absolute; bottom:12%; left:18%; width:60px; height:30px; background: radial-gradient(ellipse, #000 0%, transparent 70%); opacity:0.7; animation: hqc-shadow1 5s linear infinite; }
.scn-hqc .shadow-right { position:absolute; bottom:12%; right:18%; width:60px; height:30px; background: radial-gradient(ellipse, #000 0%, transparent 70%); opacity:0.7; animation: hqc-shadow2 5s linear infinite reverse; }
@keyframes hqc-bg { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes hqc-lamp { 0% { transform: scaleY(1) scaleX(1); opacity:.8 } 50% { transform: scaleY(1.05) scaleX(1.02); opacity:1 } 100% { transform: scaleY(.98) scaleX(.98); opacity:.7 } }
@keyframes hqc-holmes { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes hqc-carruthers { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes hqc-lamp-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.5; transform: scale(.9) } }
@keyframes hqc-shadow1 { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(-5px) } }
@keyframes hqc-shadow2 { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(5px) } }

/* carruthers-justification - tense dim interior, hand and telegram */
.scn-cjt { background: linear-gradient(180deg, #1a1210 0%, #0e0806 50%, #050302 100%), radial-gradient(ellipse at 40% 50%, #2a1a12 0%, transparent 70%); }
.scn-cjt .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a12 0%, transparent 100%); animation: cjt-bg 10s ease-in-out infinite alternate; }
.scn-cjt .desk { position:absolute; bottom:12%; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-cjt .lamp { position:absolute; bottom:28%; left:38%; width:25px; height:40px; margin-left:-12px; background: linear-gradient(180deg, #b08050 0%, #705030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 15px 5px #a07040; animation: cjt-lamp 2.5s ease-in-out infinite alternate; }
.scn-cjt .hand { position:absolute; bottom:18%; left:45%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: cjt-hand 3s ease-in-out infinite; }
.scn-cjt .telegram { position:absolute; bottom:22%; left:48%; width:50px; height:30px; background: linear-gradient(135deg, #c0b0a0 0%, #a09080 100%); border: 2px solid #5a4a3a; border-radius: 4px; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: cjt-telegram 4s ease-in-out infinite; }
.scn-cjt .telegram-glow { position:absolute; bottom:22%; left:48%; width:60px; height:40px; margin-left:-5px; margin-bottom:-5px; background: radial-gradient(circle, #f0d080 0%, #d0b060 30%, transparent 70%); filter: blur(8px); opacity:0.6; animation: cjt-tele-glow 2s ease-in-out infinite alternate; }
.scn-cjt .shadow-hand { position:absolute; bottom:12%; left:42%; width:50px; height:15px; background: radial-gradient(ellipse, #000 0%, transparent 70%); opacity:0.6; animation: cjt-shdw 5s linear infinite; }
@keyframes cjt-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes cjt-lamp { 0% { transform: scaleY(1) scaleX(1); opacity:.8 } 50% { transform: scaleY(1.04) scaleX(1.01); opacity:1 } 100% { transform: scaleY(.97) scaleX(.99); opacity:.7 } }
@keyframes cjt-hand { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(2px) rotate(3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cjt-telegram { 0%,100% { transform: rotate(5deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(3deg) } 75% { transform: rotate(6deg) } }
@keyframes cjt-tele-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.95) } }
@keyframes cjt-shdw { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(.9) } }

/* holmes-reconstructs - calm dim interior */
.scn-hrc { background: linear-gradient(180deg, #1a1a2e 0%, #12121e 50%, #08080e 100%), radial-gradient(ellipse at 50% 60%, #2a2a3e 0%, transparent 70%); }
.scn-hrc .bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2a3e 0%, transparent 100%); animation: hrc-bg 15s ease-in-out infinite alternate; }
.scn-hrc .armchair { position:absolute; bottom:15%; left:30%; width:80px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-hrc .holmes-figure { position:absolute; bottom:18%; left:35%; width:40px; height:85px; margin-left:-5px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: hrc-figure 10s ease-in-out infinite; }
.scn-hrc .pipe-smoke { position:absolute; bottom:50%; left:38%; width:20px; height:40px; background: radial-gradient(circle, rgba(200,200,200,.3) 0%, transparent 70%); filter: blur(8px); animation: hrc-smoke 20s linear infinite; }
.scn-hrc .lamp { position:absolute; bottom:30%; right:20%; width:25px; height:45px; background: linear-gradient(180deg, #b08050 0%, #705030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 4px #a07040; animation: hrc-lamp 5s ease-in-out infinite alternate; }
.scn-hrc .lamp-glow { position:absolute; bottom:30%; right:20%; width:80px; height:80px; margin-top:-20px; margin-right:-20px; background: radial-gradient(circle, #f0a050 0%, #c07030 30%, transparent 70%); filter: blur(15px); animation: hrc-glow 6s ease-in-out infinite alternate; }
.scn-hrc .shadow { position:absolute; bottom:12%; left:25%; width:100px; height:20px; background: radial-gradient(ellipse, #000 0%, transparent 70%); opacity:0.5; animation: hrc-shadow 20s linear infinite; }
.scn-hrc .shelf { position:absolute; bottom:40%; right:5%; width:60px; height:10px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
@keyframes hrc-bg { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes hrc-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } }
@keyframes hrc-smoke { 0% { opacity:.3; transform: translateY(0) translateX(0) scale(1) } 25% { opacity:.5; transform: translateY(-20px) translateX(5px) scale(1.2) } 50% { opacity:.4; transform: translateY(-40px) translateX(10px) scale(1.5) } 75% { opacity:.2; transform: translateY(-60px) translateX(5px) scale(1.8) } 100% { opacity:0; transform: translateY(-80px) translateX(0) scale(2) } }
@keyframes hrc-lamp { 0% { transform: scaleY(1) scaleX(1); opacity:.8 } 50% { transform: scaleY(1.02) scaleX(1.01); opacity:.95 } 100% { transform: scaleY(.98) scaleX(.99); opacity:.85 } }
@keyframes hrc-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.08) } 100% { opacity:.5; transform: scale(.95) } }
@keyframes hrc-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.1) } 100% { transform: translateX(-5px) scaleX(.95) } }

.scn-stakeout-pension-garden { background: linear-gradient(180deg, #0f1a2e 0%, #1c2b4a 40%, #2a3e66 80%, #1f2d4f 100%), radial-gradient(ellipse at 50% 0%, #4a6688 0%, transparent 70%); }
.scn-stakeout-pension-garden .moon { position:absolute; top:8%; right:15%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #e8eef0 0%, #b0c4d8 70%, #8a9bb5 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(138,155,181,.4), 0 0 80px 40px rgba(138,155,181,.2); animation: stkp-moon 12s ease-in-out infinite alternate; }
.scn-stakeout-pension-garden .fence { position:absolute; bottom:35%; left:0; right:0; height:50%; background: repeating-linear-gradient(90deg, #2a3e4a 0px, #2a3e4a 12px, transparent 12px, transparent 18px); border-top: 3px solid #1a2a36; animation: stkp-fence 8s ease-in-out infinite alternate; }
.scn-stakeout-pension-garden .bush-left { position:absolute; bottom:30%; left:5%; width:100px; height:80px; background: radial-gradient(ellipse at 50% 100%, #1a2e2a 0%, #0f1f1e 100%); border-radius:60% 40% 50% 70% / 80% 60% 70% 40%; animation: stkp-bush 14s ease-in-out infinite; }
.scn-stakeout-pension-garden .bush-right { position:absolute; bottom:28%; right:8%; width:130px; height:90px; background: radial-gradient(ellipse at 50% 100%, #1f332f 0%, #112422 100%); border-radius:50% 60% 70% 50% / 70% 80% 50% 60%; animation: stkp-bush 14s ease-in-out infinite reverse; }
.scn-stakeout-pension-garden .holmes { position:absolute; bottom:36%; left:12%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: stkp-stand 6s ease-in-out infinite; }
.scn-stakeout-pension-garden .lestrade { position:absolute; bottom:36%; left:5%; width:18px; height:48px; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 50%, #0e0e1e 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: stkp-stand 6s ease-in-out infinite 0.3s; }
.scn-stakeout-pension-garden .cigarette { position:absolute; bottom:50%; left:13%; width:2px; height:8px; background: #ffb86b; border-radius:2px; box-shadow: 0 0 4px 2px rgba(255,184,107,.3), 0 0 8px 4px rgba(255,184,107,.1); animation: stkp-smoke 5s ease-in-out infinite; }
.scn-stakeout-pension-garden .star-a { position:absolute; top:15%; left:20%; width:2px; height:2px; background:#e8eef0; border-radius:50%; box-shadow: 0 0 4px 2px rgba(232,238,240,.5); animation: stkp-twinkle 4s ease-in-out infinite; }
.scn-stakeout-pension-garden .star-b { position:absolute; top:10%; right:35%; width:2px; height:2px; background:#e8eef0; border-radius:50%; box-shadow: 0 0 4px 2px rgba(232,238,240,.5); animation: stkp-twinkle 4s ease-in-out infinite 1.5s; }
@keyframes stkp-moon { 0% { transform: translateY(0) scale(1); opacity:.9; } 50% { transform: translateY(-4px) scale(1.02); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.85; } }
@keyframes stkp-fence { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes stkp-bush { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes stkp-stand { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes stkp-smoke { 0% { opacity:0; transform: translateY(0) scale(1); } 30% { opacity:1; } 60% { opacity:.5; transform: translateY(-12px) scale(1.5); } 100% { opacity:0; transform: translateY(-24px) scale(2); } }
@keyframes stkp-twinkle { 0% { opacity:.3; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:.4; transform: scale(1); } }

.scn-garden-burglar-appears { background: linear-gradient(180deg, #0d1b2a 0%, #13283d 30%, #1a3048 60%, #0f1f30 100%), radial-gradient(ellipse at 70% 20%, #3a5a7a 0%, transparent 70%); }
.scn-garden-burglar-appears .house-shadow { position:absolute; right:0; top:10%; width:60%; height:80%; background: linear-gradient(180deg, #1f2e3a 0%, #0c141c 100%); border-radius: 0 0 0 20%; box-shadow: 0 0 30px 10px rgba(0,0,0,.5); animation: gar-flicker 7s ease-in-out infinite alternate; }
.scn-garden-burglar-appears .garden-path { position:absolute; bottom:0; left:15%; right:20%; height:30%; background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-garden-burglar-appears .gate { position:absolute; bottom:15%; left:12%; width:60px; height:100px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border:2px solid #5a5a3a; border-radius: 20% 20% 0 0; transform-origin: left center; animation: gar-gate 2s ease-in-out infinite; }
.scn-garden-burglar-appears .bush-back { position:absolute; bottom:20%; left:30%; width:120px; height:70px; background: radial-gradient(ellipse at 50% 100%, #1a3a2a 0%, #0a1a12 100%); border-radius:60% 40% 50% 70% / 80% 60% 70% 40%; animation: gar-bush 10s ease-in-out infinite; }
.scn-garden-burglar-appears .burglar-figure { position:absolute; bottom:12%; left:22%; width:22px; height:60px; background: linear-gradient(180deg, #0f0f1a 0%, #05050f 100%); border-radius:50% 40% 40% 40% / 70% 60% 40% 40%; transform-origin: bottom center; animation: gar-rush 1.2s ease-in-out infinite; }
.scn-garden-burglar-appears .moonlight-shaft { position:absolute; top:0; left:20%; width:40%; height:70%; background: linear-gradient(180deg, rgba(200,220,240,.15) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: gar-shaft 6s ease-in-out infinite alternate; }
.scn-garden-burglar-appears .leaf-tremble { position:absolute; bottom:35%; left:40%; width:8px; height:12px; background: #1a3a2a; border-radius:50% 0% 50% 0%; animation: gar-leaf 0.8s ease-in-out infinite; }
@keyframes gar-flicker { 0% { opacity:.8; box-shadow: 0 0 20px 5px rgba(0,0,0,.4); } 50% { opacity:1; box-shadow: 0 0 30px 10px rgba(0,0,0,.6); } 100% { opacity:.85; box-shadow: 0 0 20px 5px rgba(0,0,0,.4); } }
@keyframes gar-gate { 0% { transform: rotate(0deg); } 25% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes gar-bush { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes gar-rush { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(20px) translateY(-4px) rotate(5deg); } 40% { transform: translateX(40px) translateY(-8px) rotate(10deg); } 60% { transform: translateX(60px) translateY(-4px) rotate(5deg); } 80% { transform: translateX(80px) translateY(0) rotate(0deg); } 100% { transform: translateX(100px) translateY(0) rotate(0deg); } }
@keyframes gar-shaft { 0% { opacity:.3; transform: scaleY(0.9); } 50% { opacity:.6; transform: scaleY(1); } 100% { opacity:.4; transform: scaleY(0.95); } }
@keyframes gar-leaf { 0% { transform: rotate(0deg); } 25% { transform: rotate(8deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-8deg); } 100% { transform: rotate(0deg); } }

.scn-nab-burglar-at-window { background: linear-gradient(180deg, #141e2c 0%, #1c2a3e 40%, #263652 80%, #1a2434 100%), radial-gradient(ellipse at 50% 50%, #3a526e 0%, transparent 70%); }
.scn-nab-burglar-at-window .window-frame { position:absolute; top:5%; left:25%; width:50%; height:70%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border:6px solid #2a2a3a; border-radius:4px; box-shadow: 0 0 40px 10px rgba(0,0,0,.5), inset 0 0 30px rgba(0,0,0,.3); animation: nab-window 5s ease-in-out infinite alternate; }
.scn-nab-burglar-at-window .window-sill { position:absolute; bottom:25%; left:25%; width:50%; height:8px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:2px; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-nab-burglar-at-window .burglar-silhouette { position:absolute; bottom:23%; left:48%; width:24px; height:50px; background: linear-gradient(180deg, #0f0f1a 0%, #05050f 100%); border-radius:50% 40% 30% 30% / 70% 60% 40% 40%; transform: translateX(-50%); animation: nab-emerge 2s ease-in-out infinite; }
.scn-nab-burglar-at-window .white-bundle { position:absolute; bottom:35%; left:52%; width:20px; height:16px; background: radial-gradient(ellipse, #e8e0d0 0%, #b5ab9a 100%); border-radius:30% 50% 50% 30%; box-shadow: 0 0 10px 3px rgba(232,224,208,.2); animation: nab-bundle 2s ease-in-out infinite 0.2s; }
.scn-nab-burglar-at-window .lestrade-reach { position:absolute; bottom:20%; left:15%; width:18px; height:50px; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 50%, #0e0e1e 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nab-lunge 1.5s ease-in-out infinite; }
.scn-nab-burglar-at-window .holmes-shadow { position:absolute; bottom:20%; left:8%; width:20px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nab-steady 6s ease-in-out infinite; }
.scn-nab-burglar-at-window .glimmer-patch { position:absolute; bottom:25%; left:45%; width:30px; height:20px; background: radial-gradient(ellipse, rgba(200,220,240,.3) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: nab-glimmer 2.5s ease-in-out infinite; }
@keyframes nab-window { 0% { box-shadow: 0 0 30px 5px rgba(0,0,0,.4); } 50% { box-shadow: 0 0 50px 15px rgba(0,0,0,.6); } 100% { box-shadow: 0 0 30px 5px rgba(0,0,0,.4); } }
@keyframes nab-emerge { 0% { transform: translateX(-50%) translateY(10px) rotate(5deg); opacity:.5; } 30% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity:1; } 60% { transform: translateX(-45%) translateY(-2px) rotate(-3deg); } 100% { transform: translateX(-50%) translateY(10px) rotate(5deg); opacity:.5; } }
@keyframes nab-bundle { 0% { transform: translate(0, 0) rotate(0deg); } 30% { transform: translate(2px, -2px) rotate(5deg); } 60% { transform: translate(-2px, 1px) rotate(-5deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes nab-lunge { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-10px) rotate(-10deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nab-steady { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes nab-glimmer { 0% { opacity:.2; transform: scale(0.8); } 50% { opacity:.5; transform: scale(1.2); } 100% { opacity:.3; transform: scale(0.9); } }

.scn-burglar-bust-capture { background: linear-gradient(180deg, #0d1b2a 0%, #152638 40%, #1d2d4a 80%, #0f1f32 100%), radial-gradient(ellipse at 30% 80%, #3a5a7a 0%, transparent 70%); }
.scn-burglar-bust-capture .grass-dark { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius:60% 40% 0 0/ 40% 30% 0 0; animation: bust-grass 4s ease-in-out infinite alternate; }
.scn-burglar-bust-capture .grass-light { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:40% 60% 0 0/ 30% 40% 0 0; opacity:.4; animation: bust-grass 4s ease-in-out infinite alternate 0.5s; }
.scn-burglar-bust-capture .burglar-bent { position:absolute; bottom:18%; left:50%; width:24px; height:40px; background: linear-gradient(180deg, #0f0f1a 0%, #05050f 100%); border-radius:50% 40% 40% 60% / 60% 50% 40% 40%; transform: translateX(-50%) rotate(20deg); transform-origin: bottom center; animation: bust-bend 1.8s ease-in-out infinite; }
.scn-burglar-bust-capture .holmes-lunge { position:absolute; bottom:15%; left:25%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bust-lunge 1.2s ease-in-out infinite; }
.scn-burglar-bust-capture .lestrade-pounce { position:absolute; bottom:15%; right:25%; width:20px; height:48px; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 50%, #0e0e1e 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bust-lunge 1.2s ease-in-out infinite 0.3s; transform: scaleX(-1); }
.scn-burglar-bust-capture .burden-case { position:absolute; bottom:20%; left:48%; width:18px; height:12px; background: linear-gradient(180deg, #d0c8b0 0%, #a09880 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 0 8px 2px rgba(0,0,0,.3); animation: bust-case 1.8s ease-in-out infinite 0.2s; }
.scn-burglar-bust-capture .dust-puff { position:absolute; bottom:20%; left:30%; width:20px; height:20px; background: radial-gradient(ellipse, rgba(150,140,120,.2) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: bust-dust 1s ease-out infinite; }
@keyframes bust-grass { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes bust-bend { 0% { transform: translateX(-50%) rotate(20deg) scaleY(1); } 30% { transform: translateX(-45%) rotate(25deg) scaleY(0.9); } 60% { transform: translateX(-50%) rotate(15deg) scaleY(1.1); } 100% { transform: translateX(-50%) rotate(20deg) scaleY(1); } }
@keyframes bust-lunge { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-15px) rotate(-15deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bust-case { 0% { transform: translate(0, 0) rotate(0deg); } 30% { transform: translate(2px, -2px) rotate(10deg); } 60% { transform: translate(-1px, 1px) rotate(-5deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes bust-dust { 0% { opacity:.6; transform: scale(0.5) translateY(0); } 50% { opacity:.2; transform: scale(1.5) translateY(-10px); } 100% { opacity:0; transform: scale(2) translateY(-20px); } }

/* holmes-human-moment */
.scn-holmes-human-moment {
  background: 
    linear-gradient(180deg, #d9c8a0 0%, #c4a87a 50%, #b09060 100%),
    radial-gradient(ellipse at 30% 40%, #f0d8a0 0%, transparent 70%);
}
.scn-holmes-human-moment .room-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e0d0b8 0%, #c8b898 70%); animation: hhm-wall 12s ease-in-out infinite alternate; }
.scn-holmes-human-moment .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #8a7a62 0%, #a08c74 100%); }
.scn-holmes-human-moment .window-light { position:absolute; top:8%; left:65%; width:22%; height:40%; background: linear-gradient(135deg, #fff5e0 0%, #e8d8b0 60%, transparent 100%); border-radius: 8px; box-shadow: inset 0 0 30px #f5e6c0; animation: hhm-window 18s ease-in-out infinite alternate; }
.scn-holmes-human-moment .armchair { position:absolute; bottom:32%; left:25%; width:18%; height:28%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,0.4); animation: hhm-chair 6s ease-in-out infinite; }
.scn-holmes-human-moment .holmes-silhouette { position:absolute; bottom:32%; left:28%; width:10%; height:32%; background: #1a1008; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hhm-holmes 4s ease-in-out infinite; }
.scn-holmes-human-moment .audience-figure { position:absolute; bottom:30%; right:20%; width:12%; height:30%; background: linear-gradient(135deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hhm-audience 7s ease-in-out infinite; }
.scn-holmes-human-moment .glow-spot { position:absolute; bottom:38%; left:32%; width:14%; height:12%; background: radial-gradient(circle, #f0c868 0%, #c8a050 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: hhm-spot 5s ease-in-out infinite alternate; }
@keyframes hhm-wall { 0% { opacity:0.85; background-position:0% 0%; } 50% { opacity:1; background-position:10% 5%; } 100% { opacity:0.9; background-position:0% 10%; } }
@keyframes hhm-window { 0% { transform: scaleX(1); opacity:0.7; } 50% { transform: scaleX(1.02); opacity:1; } 100% { transform: scaleX(0.98); opacity:0.8; } }
@keyframes hhm-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes hhm-holmes { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 30% { transform: translateX(4px) rotate(2deg) scaleY(1.02); } 60% { transform: translateX(-2px) rotate(-1deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes hhm-audience { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes hhm-spot { 0% { opacity:0.5; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(0.9); } }

/* holmes-explains-pearl */
.scn-holmes-explains-pearl {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d0c0a0 40%, #b8a888 100%),
    radial-gradient(ellipse at 50% 60%, #f0e0c0 0%, transparent 70%);
}
.scn-holmes-explains-pearl .desk-surface { position:absolute; bottom:10%; left:10%; right:10%; height:18%; background: linear-gradient(135deg, #8a7050 0%, #6a5030 100%); border-radius: 8px; box-shadow: 0 6px 16px rgba(0,0,0,0.5); animation: hep-desk 15s ease-in-out infinite; }
.scn-holmes-explains-pearl .pearl-glow { position:absolute; bottom:24%; left:48%; width:10%; height:8%; background: radial-gradient(circle, #fff8e0 0%, #e8d8b0 30%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: hep-glow 4s ease-in-out infinite alternate; }
.scn-holmes-explains-pearl .pearl-body { position:absolute; bottom:22%; left:49%; width:4%; height:4%; background: radial-gradient(circle at 40% 30%, #f8f0e0 0%, #d0c0a0 70%); border-radius: 50%; box-shadow: 0 0 20px rgba(200,180,150,0.8); animation: hep-pearl 6s ease-in-out infinite; }
.scn-holmes-explains-pearl .holmes-hand { position:absolute; bottom:20%; left:36%; width:10%; height:14%; background: linear-gradient(135deg, #d6b896 0%, #b09070 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: hep-hand 8s ease-in-out infinite; }
.scn-holmes-explains-pearl .lamp-light { position:absolute; top:12%; left:18%; width:20%; height:30%; background: radial-gradient(ellipse at 30% 20%, #f0d860 0%, #c8a030 50%, transparent 80%); filter: blur(6px); animation: hep-lamp 10s ease-in-out infinite alternate; }
.scn-holmes-explains-pearl .book-edge { position:absolute; bottom:20%; left:24%; width:12%; height:2%; background: #5a4a3a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: hep-book 20s linear infinite; }
@keyframes hep-desk { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes hep-glow { 0% { opacity:0.6; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:0.7; transform: scale(0.9); } }
@keyframes hep-pearl { 0% { transform: translate(0,0); } 30% { transform: translate(1px,-1px); } 60% { transform: translate(-1px,1px); } 100% { transform: translate(0,0); } }
@keyframes hep-hand { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hep-lamp { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes hep-book { 0% { transform: translateX(0); } 100% { transform: translateX(-30px); } }

/* recall-lost-pearl-case */
.scn-recall-lost-pearl-case {
  background: 
    linear-gradient(180deg, #c8b898 0%, #b0a080 50%, #98886a 100%),
    radial-gradient(ellipse at 70% 20%, #e0d0b0 0%, transparent 60%);
}
.scn-recall-lost-pearl-case .study-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 80%); animation: rlp-wall 20s ease-in-out infinite alternate; }
.scn-recall-lost-pearl-case .table { position:absolute; bottom:10%; left:12%; right:12%; height:16%; background: linear-gradient(135deg, #7a6a52 0%, #5a4a32 100%); border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,0.4); }
.scn-recall-lost-pearl-case .holmes-profile { position:absolute; bottom:28%; left:20%; width:12%; height:34%; background: #1a1008; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: rlp-holmes 9s ease-in-out infinite; }
.scn-recall-lost-pearl-case .lestrade-profile { position:absolute; bottom:28%; right:22%; width:11%; height:32%; background: #2a2018; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rlp-lestrade 12s ease-in-out infinite; }
.scn-recall-lost-pearl-case .window-blinds { position:absolute; top:6%; left:68%; width:18%; height:38%; background: repeating-linear-gradient(0deg, transparent 0px, transparent 10px, #c0a880 10px, #c0a880 12px); border-radius: 4px; box-shadow: inset 0 0 20px #f0e0c0; animation: rlp-blinds 25s ease-in-out infinite; }
.scn-recall-lost-pearl-case .lamp-glow { position:absolute; top:14%; left:22%; width:16%; height:18%; background: radial-gradient(circle, #f0d060 0%, #d8a030 40%, transparent 70%); filter: blur(10px); animation: rlp-lamp 7s ease-in-out infinite alternate; }
.scn-recall-lost-pearl-case .papers { position:absolute; bottom:16%; left:30%; width:8%; height:1.5%; background: #f0e8d0; border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: rlp-paper 18s linear infinite; }
@keyframes rlp-wall { 0% { background-position:0% 0%; } 50% { background-position:5% 8%; } 100% { background-position: -5% 3%; } }
@keyframes rlp-holmes { 0% { transform: scaleX(-1) translateX(0) rotate(0deg); } 50% { transform: scaleX(-1) translateX(-3px) rotate(1deg); } 100% { transform: scaleX(-1) translateX(2px) rotate(-1deg); } }
@keyframes rlp-lestrade { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(-2px) rotate(1deg); } }
@keyframes rlp-blinds { 0% { opacity:0.7; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.03); } 100% { opacity:0.8; transform: scaleX(0.97); } }
@keyframes rlp-lamp { 0% { opacity:0.4; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(0.9); } }
@keyframes rlp-paper { 0% { transform: translateY(0); opacity:0.6; } 50% { transform: translateY(-5px); opacity:1; } 100% { transform: translateY(0); opacity:0.6; } }

/* venucci-brother-murder */
.scn-venucci-brother-murder {
  background: 
    linear-gradient(180deg, #b8a898 0%, #988878 50%, #786858 100%),
    radial-gradient(ellipse at 40% 30%, #d0c0b0 0%, transparent 70%);
}
.scn-venucci-brother-murder .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 80%); animation: vbm-bg 22s ease-in-out infinite alternate; }
.scn-venucci-brother-murder .window-frame { position:absolute; top:6%; left:70%; width:20%; height:38%; border: 8px solid #5a4a3a; background: radial-gradient(circle at 50% 30%, #d8c8b0 0%, #b8a888 100%); border-radius: 6px; box-shadow: inset 0 0 30px rgba(200,180,150,0.6); animation: vbm-window 14s ease-in-out infinite; }
.scn-venucci-brother-murder .maid-figure { position:absolute; bottom:26%; left:32%; width:10%; height:32%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: vbm-maid 6s ease-in-out infinite; }
.scn-venucci-brother-murder .chair { position:absolute; bottom:28%; right:22%; width:14%; height:24%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: vbm-chair 10s ease-in-out infinite; }
.scn-venucci-brother-murder .candle-glow { position:absolute; bottom:30%; left:28%; width:6%; height:10%; background: radial-gradient(circle at 50% 20%, #f0c860 0%, #c8a030 40%, transparent 80%); filter: blur(6px); animation: vbm-candle 5s ease-in-out infinite alternate; }
.scn-venucci-brother-murder .letter-slip { position:absolute; bottom:18%; left:36%; width:6%; height:1.5%; background: #f0e8d0; border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: vbm-letter 30s linear infinite; }
@keyframes vbm-bg { 0% { opacity:0.8; background-position:0% 0%; } 50% { opacity:1; background-position:8% 12%; } 100% { opacity:0.85; background-position: -5% 5%; } }
@keyframes vbm-window { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes vbm-maid { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(2deg); } 60% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes vbm-chair { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(1.02); } 100% { transform: translateX(2px) scale(0.98); } }
@keyframes vbm-candle { 0% { opacity:0.5; transform: scale(0.7); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:0.6; transform: scale(0.8); } }
@keyframes vbm-letter { 0% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(40px) rotate(8deg); } 100% { transform: translateX(80px) rotate(3deg); } }

/* Scene: discretion-about-scandal */
.scn-discretion-about-scandal {
  background: 
    linear-gradient(180deg, #b8c4c8 0%, #9aacb0 40%, #7a8c8e 100%),
    radial-gradient(ellipse at 30% 80%, rgba(200,180,150,0.3) 0%, transparent 70%);
}
.scn-discretion-about-scandal .ds-window {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 55%;
  background: linear-gradient(180deg, #d0dadc 0%, #b8c4c8 100%);
  border: 6px solid #6a7a7c; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.05), 0 4px 12px rgba(0,0,0,0.2);
  animation: ds-ambient 12s ease-in-out infinite alternate;
}
.scn-discretion-about-scandal .ds-curtain-left {
  position: absolute; top: 7%; left: 22%; width: 18%; height: 60%;
  background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 0 40% 40% 0 / 0 20% 20% 0;
  filter: drop-shadow(4px 0 6px rgba(0,0,0,0.3));
  animation: ds-sway 8s ease-in-out infinite alternate;
}
.scn-discretion-about-scandal .ds-curtain-right {
  position: absolute; top: 7%; right: 22%; width: 18%; height: 60%;
  background: linear-gradient(270deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 0 0 40% / 20% 0 0 20%;
  filter: drop-shadow(-4px 0 6px rgba(0,0,0,0.3));
  animation: ds-sway 8s ease-in-out infinite alternate-reverse;
}
.scn-discretion-about-scandal .ds-chair {
  position: absolute; bottom: 18%; left: 40%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: ds-breathe 6s ease-in-out infinite;
}
.scn-discretion-about-scandal .ds-figure {
  position: absolute; bottom: 24%; left: 44%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-rock 4s ease-in-out infinite alternate;
}
.scn-discretion-about-scandal .ds-carpet {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(90deg, #5a4a3a 0%, #6a5a4a 30%, #5a4a3a 70%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
}
.scn-discretion-about-scandal .ds-lamp {
  position: absolute; bottom: 30%; right: 30%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 5% 5% 50% 50%;
  box-shadow: 0 0 20px 8px rgba(200,180,120,0.2);
  animation: ds-glow 3s ease-in-out infinite alternate;
}
.scn-discretion-about-scandal .ds-moth {
  position: absolute; top: 28%; left: 58%; width: 2%; height: 2%;
  background: radial-gradient(circle, #e0e0e0 0%, #a0a0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(255,255,255,0.3);
  animation: ds-flight 12s ease-in-out infinite;
}
@keyframes ds-ambient { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes ds-sway { 0% { transform: rotate(0deg) scaleY(1); } 33% { transform: rotate(2deg) scaleY(1.02); } 66% { transform: rotate(-1deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes ds-breathe { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes ds-rock { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ds-glow { 0% { box-shadow: 0 0 12px 4px rgba(200,180,120,0.15); } 50% { box-shadow: 0 0 24px 10px rgba(200,180,120,0.35); } 100% { box-shadow: 0 0 16px 6px rgba(200,180,120,0.2); } }
@keyframes ds-flight { 0% { transform: translate(0,0) rotate(0deg); opacity: 0.6; } 20% { transform: translate(30px,-20px) rotate(10deg); opacity: 1; } 40% { transform: translate(60px,10px) rotate(-5deg); opacity: 0.8; } 60% { transform: translate(90px,-30px) rotate(15deg); opacity: 0.9; } 80% { transform: translate(120px,0px) rotate(0deg); opacity: 1; } 100% { transform: translate(150px,-15px) rotate(5deg); opacity: 0.5; } }

/* Scene: lodging-near-library */
.scn-lodging-near-library {
  background: 
    linear-gradient(180deg, #2a2a2e 0%, #1e1e22 50%, #141418 100%),
    radial-gradient(ellipse at 50% 10%, rgba(200,180,100,0.15) 0%, transparent 60%);
}
.scn-lodging-near-library .lnl-bookshelf {
  position: absolute; top: 5%; left: 5%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  overflow: hidden;
}
.scn-lodging-near-library .lnl-bookshelf::after {
  content: ''; position: absolute; top: 20%; left: 10%; width: 80%; height: 10%;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 8px, transparent 8px, transparent 12px);
}
.scn-lodging-near-library .lnl-desk {
  position: absolute; bottom: 15%; left: 30%; width: 45%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-lodging-near-library .lnl-lamp {
  position: absolute; bottom: 32%; left: 48%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 5% 5% 40% 40%;
  box-shadow: 0 0 30px 12px rgba(220,200,120,0.4);
  animation: lnl-glow 4s ease-in-out infinite alternate;
}
.scn-lodging-near-library .lnl-chair {
  position: absolute; bottom: 10%; left: 35%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-lodging-near-library .lnl-figure {
  position: absolute; bottom: 15%; left: 38%; width: 12%; height: 24%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: lnl-read 6s ease-in-out infinite;
}
.scn-lodging-near-library .lnl-papers {
  position: absolute; bottom: 22%; left: 52%; width: 14%; height: 6%;
  background: linear-gradient(90deg, #e8dcc8 0%, #d4c8b4 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(5deg); animation: lnl-flutter 8s ease-in-out infinite alternate;
}
.scn-lodging-near-library .lnl-globe {
  position: absolute; bottom: 18%; right: 10%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 50% 40%, #4a6a4a 0%, #2a4a2a 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: lnl-spin 20s linear infinite;
}
@keyframes lnl-glow { 0% { box-shadow: 0 0 20px 8px rgba(220,200,120,0.3); } 50% { box-shadow: 0 0 36px 14px rgba(220,200,120,0.5); } 100% { box-shadow: 0 0 24px 10px rgba(220,200,120,0.35); } }
@keyframes lnl-read { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lnl-flutter { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(3deg) translateX(0); } }
@keyframes lnl-spin { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(180deg); } 100% { transform: rotateY(360deg); } }

/* Scene: soames-nervous-arrival */
.scn-soames-nervous-arrival {
  background: 
    linear-gradient(180deg, #1a1a22 0%, #12121a 40%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 20%, rgba(200,160,80,0.1) 0%, transparent 70%);
}
.scn-soames-nervous-arrival .sna-door {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 75%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 4px solid #1a0a00; border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 4px 12px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateY(8deg);
  animation: sna-door-sway 6s ease-in-out infinite alternate;
}
.scn-soames-nervous-arrival .sna-doorframe {
  position: absolute; top: 8%; left: 33%; width: 34%; height: 78%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 0 0 4px #1a0a00;
}
.scn-soames-nervous-arrival .sna-figure {
  position: absolute; bottom: 12%; left: 35%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sna-shiver 2s ease-in-out infinite;
}
.scn-soames-nervous-arrival .sna-shadow {
  position: absolute; bottom: 8%; left: 30%; width: 24%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: sna-shadow-pulse 3s ease-in-out infinite alternate;
}
.scn-soames-nervous-arrival .sna-lamp {
  position: absolute; bottom: 50%; right: 20%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 5% 5% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(200,180,100,0.4);
  animation: sna-flicker 1.5s ease-in-out infinite alternate;
}
.scn-soames-nervous-arrival .sna-floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 12%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-soames-nervous-arrival .sna-clock {
  position: absolute; top: 12%; right: 12%; width: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 40%, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 50%; border: 3px solid #2a1a0a;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: sna-tick 1s steps(2) infinite;
}
.scn-soames-nervous-arrival .sna-clock::after {
  content: ''; position: absolute; top: 45%; left: 48%; width: 2%; height: 25%;
  background: #1a1a1a; border-radius: 1px; transform-origin: bottom center;
  animation: sna-tick-hand 60s linear infinite;
}
@keyframes sna-door-sway { 0% { transform: perspective(600px) rotateY(8deg); } 50% { transform: perspective(600px) rotateY(10deg); } 100% { transform: perspective(600px) rotateY(6deg); } }
@keyframes sna-shiver { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sna-shadow-pulse { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.05); } 100% { opacity: 0.6; transform: scaleX(1); } }
@keyframes sna-flicker { 0% { box-shadow: 0 0 15px 5px rgba(200,180,100,0.3); } 30% { box-shadow: 0 0 25px 10px rgba(200,180,100,0.5); } 60% { box-shadow: 0 0 10px 3px rgba(200,180,100,0.2); } 100% { box-shadow: 0 0 20px 8px rgba(200,180,100,0.4); } }
@keyframes sna-tick { 0%,100% { opacity: 1; } 50% { opacity: 0.95; } }
@keyframes sna-tick-hand { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Scene: soames-pleads-help */
.scn-soames-pleads-help {
  background: 
    linear-gradient(180deg, #1a1a22 0%, #14141c 40%, #0e0e16 100%),
    radial-gradient(ellipse at 60% 40%, rgba(180,160,80,0.1) 0%, transparent 60%);
}
.scn-soames-pleads-help .sph-wall {
  position: absolute; top: 0; left: 0; width: 100%; height: 85%;
  background: linear-gradient(90deg, #2a2a36 0%, #1e1e28 50%, #2a2a36 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
}
.scn-soames-pleads-help .sph-desk {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-soames-pleads-help .sph-lamp {
  position: absolute; bottom: 30%; left: 45%; width: 5%; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 5% 5% 40% 40%;
  box-shadow: 0 0 30px 12px rgba(220,200,120,0.4);
  animation: sph-glow 3s ease-in-out infinite alternate;
}
.scn-soames-pleads-help .sph-holmes-chair {
  position: absolute; bottom: 8%; left: 30%; width: 16%; height: 22%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-soames-pleads-help .sph-holmes-figure {
  position: absolute; bottom: 14%; left: 32%; width: 11%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: sph-sit 5s ease-in-out infinite;
}
.scn-soames-pleads-help .sph-soames-figure {
  position: absolute; bottom: 10%; left: 55%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sph-plead 2s ease-in-out infinite alternate;
}
.scn-soames-pleads-help .sph-papers {
  position: absolute; bottom: 22%; left: 40%; width: 12%; height: 5%;
  background: linear-gradient(90deg, #e0d4c0 0%, #d0c4b0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-3deg); animation: sph-shuffle 6s ease-in-out infinite alternate;
}
.scn-soames-pleads-help .sph-cigarette-smoke {
  position: absolute; top: 35%; left: 38%; width: 4%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,200,200,0.4) 0%, transparent 80%);
  filter: blur(3px); border-radius: 50%;
  animation: sph-smoke 8s ease-in-out infinite;
}
@keyframes sph-glow { 0% { box-shadow: 0 0 20px 8px rgba(220,200,120,0.3); } 50% { box-shadow: 0 0 40px 16px rgba(220,200,120,0.5); } 100% { box-shadow: 0 0 24px 10px rgba(220,200,120,0.35); } }
@keyframes sph-sit { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sph-plead { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sph-shuffle { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes sph-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 25% { transform: translateY(-10px) scale(1.2); opacity: 0.3; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.2; } 75% { transform: translateY(-30px) scale(1.8); opacity: 0.1; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }

.scn-elemental-forces {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 40%, #2a2a3e 100%),
              radial-gradient(ellipse at 30% 60%, #3a3a5e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-elemental-forces .window-frame {
  position: absolute; bottom: 35%; left: 20%; width: 50%; height: 45%;
  border: 4px solid #3a3a4e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 10px rgba(0,0,0,.5);
  background: transparent;
}
.scn-elemental-forces .storm-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c2c4e 0%, #121224 60%, #1e1e3a 100%);
  animation: ef-sky 8s ease-in-out infinite alternate;
}
.scn-elemental-forces .rain-line {
  position: absolute; width: 2px; height: 60px; background: rgba(180,200,255,.15);
  border-radius: 1px; animation: ef-rain 0.6s linear infinite;
}
.scn-elemental-forces .rain-line.r1 { left: 30%; top: -10%; animation-delay: 0.1s; }
.scn-elemental-forces .rain-line.r2 { left: 65%; top: -20%; animation-delay: 0.4s; }
.scn-elemental-forces .figure.profile {
  position: absolute; bottom: 28%; left: 35%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ef-figure 4s ease-in-out infinite;
}
.scn-elemental-forces .table-edge {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e120a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: ef-table 12s ease-in-out infinite;
}
@keyframes ef-sky { 0% { opacity: .5; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes ef-rain { 0% { transform: translateY(0) rotate(10deg); } 100% { transform: translateY(80vh) rotate(10deg); } }
@keyframes ef-figure { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(2deg); } }
@keyframes ef-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

.scn-holmes-finishes-palimpsest {
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #2a221a 100%),
              radial-gradient(ellipse at 60% 70%, #4a3828 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-holmes-finishes-palimpsest .desk {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,.7);
}
.scn-holmes-finishes-palimpsest .palimpsest-scroll {
  position: absolute; bottom: 32%; left: 35%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 60%, #806030 100%);
  border-radius: 40% 20% 30% 20%; box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: hfp-scroll 6s ease-in-out infinite alternate;
}
.scn-holmes-finishes-palimpsest .lamp-glow {
  position: absolute; bottom: 45%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0c060 0%, #c08840 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 15px #c08840, 0 0 60px 25px rgba(192,136,64,.3);
  animation: hfp-lamp 4s ease-in-out infinite alternate;
}
.scn-holmes-finishes-palimpsest .holmes-profile {
  position: absolute; bottom: 26%; left: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center; animation: hfp-holmes 8s ease-in-out infinite;
}
.scn-holmes-finishes-palimpsest .pipe-shadow {
  position: absolute; bottom: 32%; left: 36%; width: 6px; height: 2px;
  background: #1a1410; border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,.4);
  animation: hfp-pipe 10s ease-in-out infinite;
}
.scn-holmes-finishes-palimpsest .dust-mote {
  position: absolute; width: 4px; height: 4px; background: rgba(200,180,140,.15);
  border-radius: 50%; animation: hfp-mote 20s linear infinite;
}
.scn-holmes-finishes-palimpsest .dust-mote.m1 { top: 30%; left: 20%; animation-delay: -5s; }
.scn-holmes-finishes-palimpsest .dust-mote.m2 { top: 50%; left: 70%; animation-delay: -12s; }
@keyframes hfp-scroll { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-3px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes hfp-lamp { 0% { opacity: .85; box-shadow: 0 0 20px 10px #c08840; } 50% { opacity: 1; box-shadow: 0 0 35px 18px #f0c060; } 100% { opacity: .9; box-shadow: 0 0 25px 12px #c08840; } }
@keyframes hfp-holmes { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes hfp-pipe { 0%,100% { transform: rotate(0) translate(0,0); } 50% { transform: rotate(10deg) translate(1px,-1px); } }
@keyframes hfp-mote { 0% { transform: translate(0,0) scale(1); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translate(30px, -60px) scale(.5); opacity: 0; } }

.scn-cab-at-door {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0e0e1a 100%),
              radial-gradient(ellipse at 20% 80%, #3a3a4e 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-cab-at-door .door-frame {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 80%;
  border: 6px solid #2a2a3a; border-bottom: none; border-radius: 8px 8px 0 0;
  background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  animation: cad-door 3s ease-in-out infinite alternate;
}
.scn-cab-at-door .cab-outside {
  position: absolute; bottom: 10%; left: 5%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a12 100%);
  border-radius: 30% 50% 10% 10%; box-shadow: 0 4px 20px rgba(0,0,0,.5);
  animation: cad-cab 10s ease-in-out infinite;
}
.scn-cab-at-door .man-entering {
  position: absolute; bottom: 15%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1e1e2a 0%, #0a0a12 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cad-man 4s ease-in-out infinite;
}
.scn-cab-at-door .overcoat-hook {
  position: absolute; top: 20%; left: 35%; width: 4px; height: 30px;
  background: #2a2a3a; border-radius: 2px; transform-origin: top;
  animation: cad-coat 6s ease-in-out infinite alternate;
}
.scn-cab-at-door .hall-lamp {
  position: absolute; top: 10%; left: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle, #e0b060 0%, #b08040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #b08040;
  animation: cad-lamp 2s ease-in-out infinite alternate;
}
.scn-cab-at-door .shadow-stretch {
  position: absolute; bottom: 5%; left: 40%; width: 50px; height: 20px;
  background: linear-gradient(180deg, rgba(0,0,0,.6), transparent);
  transform-origin: left bottom; border-radius: 50%;
  animation: cad-shadow 4s ease-in-out infinite;
}
@keyframes cad-door { 0%,100% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } }
@keyframes cad-cab { 0%,100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(3px) scaleY(1.02); } }
@keyframes cad-man { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(0); } 75% { transform: translateX(15px) rotate(-2deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes cad-coat { 0% { transform: rotate(0) translate(0,0); } 100% { transform: rotate(15deg) translate(0,2px); } }
@keyframes cad-lamp { 0% { opacity: .8; box-shadow: 0 0 20px 8px #b08040; } 50% { opacity: 1; box-shadow: 0 0 50px 20px #e0b060; } 100% { opacity: .9; box-shadow: 0 0 30px 12px #b08040; } }
@keyframes cad-shadow { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.3) translateX(5px); } }

.scn-stanley-hopkins-visits {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 40%, #c0b098 100%),
              radial-gradient(ellipse at 30% 60%, #fff8e0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-stanley-hopkins-visits .fireplace {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 8px 8px 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.4);
}
.scn-stanley-hopkins-visits .armchair {
  position: absolute; bottom: 15%; left: 45%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #8a6040 0%, #6a4a2a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 15px rgba(0,0,0,.3);
  animation: shv-chair 7s ease-in-out infinite alternate;
}
.scn-stanley-hopkins-visits .door-opening {
  position: absolute; bottom: 0; right: 10%; width: 35%; height: 85%;
  border: 4px solid #8a7050; border-bottom: none; border-radius: 6px 6px 0 0;
  background: linear-gradient(180deg, #e8d8c0 0%, #c0a880 100%);
  transform-origin: left; animation: shv-door 5s ease-in-out infinite;
}
.scn-stanley-hopkins-visits .hopkins-figure {
  position: absolute; bottom: 10%; right: 22%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1410 100%);
  border-radius: 45% 45% 50% 50% / 55% 55% 45% 45%;
  transform-origin: bottom center; animation: shv-hopkins 6s ease-in-out infinite;
}
.scn-stanley-hopkins-visits .hall-light {
  position: absolute; top: 10%; right: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0e8c0 0%, #d8c8a0 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px #d8c8a0, 0 0 80px 30px rgba(216,200,160,.3);
  animation: shv-light 3s ease-in-out infinite alternate;
}
.scn-stanley-hopkins-visits .curtain-sway {
  position: absolute; top: 5%; right: 5%; width: 8%; height: 70%;
  background: linear-gradient(180deg, #c0a070 0%, #a08060 100%);
  border-radius: 20%; transform-origin: top; animation: shv-curtain 12s ease-in-out infinite alternate;
}
@keyframes shv-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes shv-door { 0% { transform: rotateY(0deg); } 25% { transform: rotateY(-15deg); } 50% { transform: rotateY(0deg); } 75% { transform: rotateY(-5deg); } 100% { transform: rotateY(0deg); } }
@keyframes shv-hopkins { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-4px) rotate(2deg); } 50% { transform: translateX(-8px) rotate(0); } 75% { transform: translateX(-12px) rotate(-1deg); } }
@keyframes shv-light { 0% { opacity: .9; box-shadow: 0 0 30px 15px #d8c8a0; } 50% { opacity: 1; box-shadow: 0 0 60px 25px #f0e8c0; } 100% { opacity: .95; box-shadow: 0 0 40px 18px #d8c8a0; } }
@keyframes shv-curtain { 0% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.05); } 100% { transform: rotate(-3deg) scaleX(.95); } }

/* one block per scene id. Append to style.css. */
.scn-hopkins-call-record { background: linear-gradient(180deg, #f5e6d3 0%, #d4c3a8 50%, #b8a58a 100%), radial-gradient(ellipse at 50% 20%, #fff8f0 0%, transparent 60%); }
.scn-hopkins-call-record .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8dcc8 0%, #d4c3a8 100%); border-radius:0 0 10% 10%; }
.scn-hopkins-call-record .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-hopkins-call-record .desk { position:absolute; bottom:20%; left:30%; width:35%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.3); animation:hcr-desk 12s ease-in-out infinite alternate; }
.scn-hopkins-call-record .lamp { position:absolute; top:18%; left:55%; width:10%; height:15%; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 70%); border-radius:50%; box-shadow:0 0 40px 20px rgba(255,208,128,.5); animation:hcr-lamp 3s ease-in-out infinite alternate; }
.scn-hopkins-call-record .bookshelf { position:absolute; top:15%; left:5%; width:20%; height:55%; background: repeating-linear-gradient(180deg, #5a3a2a 0px, #5a3a2a 8px, #4a2a1a 8px, #4a2a1a 16px); border-radius:4px; box-shadow:inset 0 0 10px rgba(0,0,0,.3); animation:hcr-shelf 18s ease-in-out infinite; }
.scn-hopkins-call-record .holmes { position:absolute; bottom:25%; left:35%; width:12%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:hcr-holmes 5s ease-in-out infinite; }
.scn-hopkins-call-record .watson { position:absolute; bottom:25%; right:25%; width:11%; height:21%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:45% 45% 40% 40% / 55% 55% 35% 35%; transform-origin:bottom center; animation:hcr-watson 7s ease-in-out infinite; }
.scn-hopkins-call-record .curtain { position:absolute; top:0; right:0; width:8%; height:70%; background: linear-gradient(180deg, #a87858 0%, #784830 100%); border-radius:0 0 30% 30%; animation:hcr-curtain 9s ease-in-out infinite alternate; }
@keyframes hcr-desk { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes hcr-lamp { 0%{opacity:.85;box-shadow:0 0 30px 15px rgba(255,208,128,.4)} 50%{opacity:1;box-shadow:0 0 50px 25px rgba(255,208,128,.6)} 100%{opacity:.9;box-shadow:0 0 35px 18px rgba(255,208,128,.45)} }
@keyframes hcr-shelf { 0%,100%{transform:scaleY(1)} 50%{transform:scaleY(.99)} }
@keyframes hcr-holmes { 0%{transform:translateX(0) rotate(-1deg)} 25%{transform:translateX(2px) rotate(1deg)} 50%{transform:translateX(0) rotate(-1deg)} 75%{transform:translateX(-2px) rotate(1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes hcr-watson { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(-1px) scale(1.005)} 100%{transform:translateX(0) scale(1)} }
@keyframes hcr-curtain { 0%{transform:translateX(0)} 50%{transform:translateX(-3px)} 100%{transform:translateX(0)} }

.scn-watson-bitter { background: linear-gradient(180deg, #e0e0e8 0%, #b8b8c8 50%, #9090a0 100%), radial-gradient(ellipse at 50% 30%, #ffffff 0%, transparent 60%); }
.scn-watson-bitter .room-shadow { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.15) 0%, transparent 50%, rgba(0,0,0,.1) 100%); animation:wb-shadow 10s ease-in-out infinite alternate; }
.scn-watson-bitter .chair { position:absolute; bottom:20%; left:40%; width:25%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 20% 20%; box-shadow:8px 8px 16px rgba(0,0,0,.4); animation:wb-chair 8s ease-in-out infinite; }
.scn-watson-bitter .table { position:absolute; bottom:15%; right:20%; width:20%; height:6%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.3); }
.scn-watson-bitter .papers { position:absolute; bottom:18%; right:22%; width:12%; height:8%; background: #f5f0e0; border-radius:2px; transform:rotate(-10deg); box-shadow:2px 2px 4px rgba(0,0,0,.2); animation:wb-papers 4s ease-in-out infinite alternate; }
.scn-watson-bitter .watson-figure { position:absolute; bottom:22%; left:42%; width:14%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation:wb-figure 3s ease-in-out infinite; }
.scn-watson-bitter .window-sharp { position:absolute; top:8%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #fffff0 0%, #d0d0e0 100%); border:4px solid #5a4a3a; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.1); animation:wb-window 6s ease-in-out infinite alternate; }
.scn-watson-bitter .shadow-stripe { position:absolute; top:10%; left:12%; width:8%; height:36%; background: rgba(0,0,0,.3); border-radius:2px; animation:wb-stripe 9s ease-in-out infinite; }
@keyframes wb-shadow { 0%{opacity:.2} 50%{opacity:.4} 100%{opacity:.2} }
@keyframes wb-chair { 0%,100%{transform:rotate(0)} 50%{transform:rotate(1deg)} }
@keyframes wb-papers { 0%{transform:rotate(-10deg) translateY(0)} 50%{transform:rotate(-8deg) translateY(2px)} 100%{transform:rotate(-10deg) translateY(0)} }
@keyframes wb-figure { 0%{transform:translateX(0) rotate(0)} 33%{transform:translateX(-3px) rotate(2deg)} 66%{transform:translateX(2px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes wb-window { 0%{opacity:.8;box-shadow:inset 0 0 10px rgba(0,0,0,.1)} 50%{opacity:1;box-shadow:inset 0 0 30px rgba(0,0,0,.2)} 100%{opacity:.85;box-shadow:inset 0 0 15px rgba(0,0,0,.12)} }
@keyframes wb-stripe { 0%,100%{transform:scaleY(1);opacity:.3} 50%{transform:scaleY(1.05);opacity:.4} }

.scn-lady-released { background: linear-gradient(180deg, #f0e8dc 0%, #d8cebe 50%, #c0b4a0 100%), radial-gradient(ellipse at 50% 50%, #fffcf6 0%, transparent 50%); }
.scn-lady-released .wall-light { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8dcc8 0%, #d4c3a8 100%); border-radius:0 0 8% 8%; animation:lr-wall 15s ease-in-out infinite alternate; }
.scn-lady-released .door { position:absolute; bottom:15%; left:25%; width:25%; height:45%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 2% 2% / 8% 8% 2% 2%; box-shadow:inset 0 0 20px rgba(0,0,0,.3); animation:lr-door 10s ease-in-out infinite; }
.scn-lady-released .door-handle { position:absolute; bottom:30%; left:45%; width:3%; height:5%; background: #c0a060; border-radius:50%; box-shadow:0 0 6px rgba(192,160,96,.5); }
.scn-lady-released .lady-figure { position:absolute; bottom:18%; left:28%; width:10%; height:20%; background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%); border-radius:40% 40% 35% 35% / 50% 50% 30% 30%; transform-origin:bottom center; animation:lr-lady 6s ease-in-out infinite; }
.scn-lady-released .key { position:absolute; bottom:32%; left:44%; width:2%; height:6%; background: radial-gradient(ellipse 100% 50%, #d0b070 0%, #a08050 100%); border-radius:20%; transform:rotate(20deg); box-shadow:0 0 4px rgba(160,128,80,.4); animation:lr-key 4s ease-in-out infinite alternate; }
.scn-lady-released .window-bars { position:absolute; top:10%; right:15%; width:20%; height:35%; background: repeating-linear-gradient(90deg, transparent 0%, transparent 85%, #4a3a2a 85%, #4a3a2a 100%), repeating-linear-gradient(0deg, transparent 0%, transparent 85%, #4a3a2a 85%, #4a3a2a 100%); border:4px solid #4a3a2a; border-radius:4px; background-color: #a8c0d0; }
.scn-lady-released .ray { position:absolute; top:12%; right:18%; width:14%; height:30%; background: linear-gradient(180deg, rgba(255,255,200,.4) 0%, transparent 100%); transform:rotate(15deg); filter:blur(2px); animation:lr-ray 8s ease-in-out infinite alternate; }
@keyframes lr-wall { 0%,100%{opacity:.9} 50%{opacity:1} }
@keyframes lr-door { 0%{transform:translateX(0) scaleX(1)} 50%{transform:translateX(-2px) scaleX(.98)} 100%{transform:translateX(0) scaleX(1)} }
@keyframes lr-lady { 0%{transform:translateY(0) rotate(-1deg)} 33%{transform:translateY(-2px) rotate(1deg)} 66%{transform:translateY(-1px) rotate(0)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes lr-key { 0%{transform:rotate(15deg) translateY(0);opacity:.8} 100%{transform:rotate(20deg) translateY(2px);opacity:1} }
@keyframes lr-ray { 0%{opacity:.3;transform:rotate(10deg)} 50%{opacity:.6;transform:rotate(15deg)} 100%{opacity:.4;transform:rotate(12deg)} }

.scn-arrival-at-abbey-grange { background: linear-gradient(180deg, #f0c8a0 0%, #d8a878 30%, #a08060 60%, #605040 100%), radial-gradient(ellipse at 30% 50%, #ffe8c0 0%, transparent 50%); }
.scn-arrival-at-abbey-grange .dawn-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #ffd8b0 0%, #c8a070 40%, #a08060 100%); border-radius:0 0 40% 40%; animation:aag-sky 20s ease-in-out infinite alternate; }
.scn-arrival-at-abbey-grange .distant-trees { position:absolute; bottom:40%; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:60% 40% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.3); animation:aag-trees 25s ease-in-out infinite; }
.scn-arrival-at-abbey-grange .gate { position:absolute; bottom:28%; left:50%; width:30%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4% 4% 0 0; box-shadow:0 6px 12px rgba(0,0,0,.4); transform:translateX(-50%); animation:aag-gate 12s ease-in-out infinite; }
.scn-arrival-at-abbey-grange .lodge { position:absolute; bottom:20%; right:15%; width:20%; height:30%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 2% 2%; box-shadow:0 4px 8px rgba(0,0,0,.3); animation:aag-lodge 18s ease-in-out infinite alternate; }
.scn-arrival-at-abbey-grange .road { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:60% 60% 0 0; clip-path:polygon(20% 0, 80% 0, 100% 100%, 0% 100%); animation:aag-road 8s ease-in-out infinite; }
.scn-arrival-at-abbey-grange .lodge-keeper { position:absolute; bottom:20%; right:22%; width:8%; height:16%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation:aag-keeper 6s ease-in-out infinite; }
.scn-arrival-at-abbey-grange .lantern-post { position:absolute; bottom:25%; left:55%; width:2%; height:20%; background: #4a3a2a; border-radius:4px; box-shadow:0 0 16px 4px rgba(255,200,100,.6); animation:aag-lantern 4s ease-in-out infinite alternate; }
.scn-arrival-at-abbey-grange .mist { position:absolute; bottom:20%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(255,240,220,.2) 0%, transparent 70%); filter:blur(8px); animation:aag-mist 30s linear infinite; }
@keyframes aag-sky { 0%{opacity:.8;filter:brightness(.9)} 50%{opacity:1;filter:brightness(1)} 100%{opacity:.85;filter:brightness(.95)} }
@keyframes aag-trees { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-3px)} }
@keyframes aag-gate { 0%{transform:translateX(-50%) scaleX(1)} 50%{transform:translateX(-48%) scaleX(1.02)} 100%{transform:translateX(-50%) scaleX(1)} }
@keyframes aag-lodge { 0%{transform:translateX(0)} 50%{transform:translateX(2px)} 100%{transform:translateX(0)} }
@keyframes aag-road { 0%{opacity:.9;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.01)} 100%{opacity:.92;transform:scaleY(1)} }
@keyframes aag-keeper { 0%{transform:translateY(0) rotate(-1deg)} 33%{transform:translateY(-2px) rotate(1deg)} 66%{transform:translateY(-1px) rotate(0)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes aag-lantern { 0%{box-shadow:0 0 12px 2px rgba(255,200,100,.4);opacity:.8} 100%{box-shadow:0 0 20px 6px rgba(255,200,100,.7);opacity:1} }
@keyframes aag-mist { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(10vw) scale(1.05)} 100%{transform:translateX(20vw) scale(1)} }

.scn-park-lane-murder {
  background: linear-gradient(180deg, #c4a265 0%, #d4b87a 30%, #b89450 100%), radial-gradient(ellipse at 50% 20%, #f0dca0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-park-lane-murder .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #c9b28a 0%, #a58c6a 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.2);
  animation: plm-wall 18s ease-in-out infinite alternate;
}
.scn-park-lane-murder .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a5f3a 0%, #5a4530 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-park-lane-murder .table {
  position: absolute; bottom: 25%; left: 25%; width: 40%; height: 16%;
  background: linear-gradient(180deg, #6b4c2a 0%, #4a3520 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  transform: perspective(600px) rotateX(10deg);
  animation: plm-table 12s ease-in-out infinite alternate;
}
.scn-park-lane-murder .lamp {
  position: absolute; bottom: 50%; left: 42%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #c8a870 0%, #8a6a40 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px 10px rgba(240,200,120,0.8);
  animation: plm-lamp 4s ease-in-out infinite alternate;
}
.scn-park-lane-murder .chair {
  position: absolute; bottom: 22%; left: 28%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2515 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: plm-chair 8s ease-in-out infinite;
}
.scn-park-lane-murder .figure {
  position: absolute; bottom: 20%; left: 32%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: plm-figure 16s ease-in-out infinite;
}
.scn-park-lane-murder .papers {
  position: absolute; bottom: 28%; left: 30%; width: 15%; height: 8%;
  background: linear-gradient(135deg, #f0eada 0%, #dcd0b8 100%);
  border-radius: 2% 2% 2% 2%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: plm-papers 10s ease-in-out infinite alternate;
}
.scn-park-lane-murder .glow {
  position: absolute; bottom: 45%; left: 38%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, rgba(240,200,120,0.25) 0%, transparent 70%);
  pointer-events: none;
  animation: plm-glow 6s ease-in-out infinite alternate;
}
@keyframes plm-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes plm-table { 0% { transform: perspective(600px) rotateX(10deg) translateY(0) } 50% { transform: perspective(600px) rotateX(12deg) translateY(-2px) } 100% { transform: perspective(600px) rotateX(10deg) translateY(0) } }
@keyframes plm-lamp { 0% { box-shadow: 0 0 20px 8px rgba(240,200,120,0.6); } 50% { box-shadow: 0 0 40px 15px rgba(255,220,150,0.9); } 100% { box-shadow: 0 0 25px 10px rgba(240,200,120,0.7); } }
@keyframes plm-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes plm-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes plm-papers { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes plm-glow { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }

.scn-narrator-reflection {
  background: linear-gradient(180deg, #d4c4a0 0%, #c0b090 50%, #a09070 100%), radial-gradient(ellipse at 50% 30%, #e0d0b0 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-narrator-reflection .desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4530 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  transform: perspective(800px) rotateX(20deg);
  animation: nr-desk 14s ease-in-out infinite alternate;
}
.scn-narrator-reflection .lamp {
  position: absolute; bottom: 55%; left: 35%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #c8a870 0%, #8a6a40 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 40px 12px rgba(240,200,120,0.9);
  animation: nr-lamp 5s ease-in-out infinite alternate;
}
.scn-narrator-reflection .chair {
  position: absolute; bottom: 18%; left: 25%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #4a3520 0%, #2a2015 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: nr-chair 10s ease-in-out infinite;
}
.scn-narrator-reflection .shadow {
  position: absolute; bottom: 18%; left: 28%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #1a1a2a 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: nr-shadow 20s ease-in-out infinite;
}
.scn-narrator-reflection .bookshelf {
  position: absolute; bottom: 40%; right: 15%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2515 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: nr-bookshelf 30s ease-in-out infinite alternate;
}
.scn-narrator-reflection .papers {
  position: absolute; bottom: 24%; left: 35%; width: 20%; height: 6%;
  background: linear-gradient(135deg, #f0eada 0%, #dcd0b8 100%);
  border-radius: 2%;
  transform: rotate(-8deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  animation: nr-papers 8s ease-in-out infinite alternate;
}
.scn-narrator-reflection .inkwell {
  position: absolute; bottom: 26%; left: 60%; width: 6%; height: 8%;
  background: radial-gradient(circle, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: nr-inkwell 12s ease-in-out infinite alternate;
}
.scn-narrator-reflection .glow {
  position: absolute; bottom: 50%; left: 30%; width: 25%; height: 35%;
  background: radial-gradient(ellipse, rgba(240,200,120,0.2) 0%, transparent 70%);
  pointer-events: none;
  animation: nr-glow 7s ease-in-out infinite alternate;
}
@keyframes nr-desk { 0% { transform: perspective(800px) rotateX(20deg) translateY(0) } 50% { transform: perspective(800px) rotateX(22deg) translateY(-2px) } 100% { transform: perspective(800px) rotateX(20deg) translateY(0) } }
@keyframes nr-lamp { 0% { box-shadow: 0 0 30px 10px rgba(240,200,120,0.7) } 50% { box-shadow: 0 0 50px 18px rgba(255,220,150,1) } 100% { box-shadow: 0 0 35px 12px rgba(240,200,120,0.8) } }
@keyframes nr-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes nr-shadow { 0% { opacity: 0.5; transform: translateY(0) } 50% { opacity: 0.7; transform: translateY(-4px) } 100% { opacity: 0.5; transform: translateY(0) } }
@keyframes nr-bookshelf { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.4) } 50% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6) } 100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.4) } }
@keyframes nr-papers { 0% { transform: rotate(-8deg) scale(1) } 50% { transform: rotate(-5deg) scale(1.02) } 100% { transform: rotate(-8deg) scale(1) } }
@keyframes nr-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes nr-glow { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }

.scn-holmes-methods-reflected {
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a888 40%, #9a8870 100%), radial-gradient(ellipse at 50% 15%, #e8d8b8 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-holmes-methods-reflected .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c9b28a 0%, #b09878 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.15);
  animation: hmr-wall 20s ease-in-out infinite alternate;
}
.scn-holmes-methods-reflected .bookshelf {
  position: absolute; bottom: 35%; left: 10%; width: 25%; height: 55%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2515 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: hmr-bookshelf 25s ease-in-out infinite alternate;
}
.scn-holmes-methods-reflected .globe {
  position: absolute; bottom: 30%; right: 15%; width: 18%; height: 22%;
  background: radial-gradient(circle at 40% 40%, #6078a0 0%, #3a4a6a 100%);
  border-radius: 50%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5), inset -8px -8px 20px rgba(0,0,0,0.3);
  animation: hmr-globe 15s ease-in-out infinite alternate;
}
.scn-holmes-methods-reflected .magnifying-glass {
  position: absolute; bottom: 28%; left: 40%; width: 12%; height: 16%;
  background: radial-gradient(circle, rgba(220,220,240,0.3) 0%, rgba(200,200,220,0.1) 60%, transparent 80%);
  border: 3px solid #c8a870;
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,200,240,0.3);
  animation: hmr-magnify 8s ease-in-out infinite alternate;
}
.scn-holmes-methods-reflected .silhouette {
  position: absolute; bottom: 18%; left: 50%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: hmr-silhouette 12s ease-in-out infinite;
}
.scn-holmes-methods-reflected .pipe {
  position: absolute; bottom: 30%; left: 55%; width: 10%; height: 4%;
  background: linear-gradient(90deg, #5a3a20 0%, #3a2515 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 60% 60%;
  transform: rotate(15deg);
  animation: hmr-pipe 9s ease-in-out infinite alternate;
}
.scn-holmes-methods-reflected .glow {
  position: absolute; bottom: 45%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse, rgba(240,200,120,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: hmr-glow 6s ease-in-out infinite alternate;
}
@keyframes hmr-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hmr-bookshelf { 0% { box-shadow: 0 4px 8px rgba(0,0,0,0.4) } 50% { box-shadow: 0 8px 16px rgba(0,0,0,0.6) } 100% { box-shadow: 0 4px 8px rgba(0,0,0,0.4) } }
@keyframes hmr-globe { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes hmr-magnify { 0% { box-shadow: 0 0 15px 4px rgba(200,200,240,0.2); opacity: 0.7 } 50% { box-shadow: 0 0 30px 10px rgba(220,220,255,0.4); opacity: 1 } 100% { box-shadow: 0 0 15px 4px rgba(200,200,240,0.2); opacity: 0.7 } }
@keyframes hmr-silhouette { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes hmr-pipe { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(18deg) scaleX(0.95) } 100% { transform: rotate(15deg) scaleX(1) } }
@keyframes hmr-glow { 0% { opacity: 0.5 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }

.scn-inquest-evidence {
  background: linear-gradient(180deg, #d4c4a0 0%, #c0b090 50%, #a09070 100%), radial-gradient(ellipse at 50% 50%, #e8d8b8 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-inquest-evidence .table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(180deg, #6b4c2a 0%, #4a3520 100%);
  border-radius: 0 0 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
  transform: perspective(600px) rotateX(15deg);
  animation: ie-table 10s ease-in-out infinite alternate;
}
.scn-inquest-evidence .gun {
  position: absolute; bottom: 40%; left: 25%; width: 15%; height: 6%;
  background: linear-gradient(90deg, #2a2a3a 0%, #4a4a5a 50%, #2a2a3a 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 60% 60%;
  transform: rotate(-20deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.6);
  animation: ie-gun 7s ease-in-out infinite alternate;
}
.scn-inquest-evidence .hat {
  position: absolute; bottom: 42%; left: 45%; width: 18%; height: 14%;
  background: linear-gradient(180deg, #3a2515 0%, #1a150a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ie-hat 12s ease-in-out infinite;
}
.scn-inquest-evidence .glove {
  position: absolute; bottom: 36%; right: 25%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 30% 30% 30% 30% / 40% 40% 40% 40%;
  transform: rotate(10deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: ie-glove 9s ease-in-out infinite alternate;
}
.scn-inquest-evidence .shadow-figure {
  position: absolute; bottom: 10%; left: 15%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  animation: ie-shadow 16s ease-in-out infinite;
}
.scn-inquest-evidence .lamp-harsh {
  position: absolute; bottom: 60%; left: 40%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #d0a860 0%, #a08040 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 60px 20px rgba(240,200,120,0.8), 0 0 100px 30px rgba(240,200,120,0.4);
  animation: ie-lamp 3s ease-in-out infinite alternate;
}
.scn-inquest-evidence .glow {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse, rgba(240,200,120,0.05) 0%, transparent 70%);
  pointer-events: none;
  animation: ie-glow 8s ease-in-out infinite alternate;
}
@keyframes ie-table { 0% { transform: perspective(600px) rotateX(15deg) translateY(0) } 50% { transform: perspective(600px) rotateX(17deg) translateY(-2px) } 100% { transform: perspective(600px) rotateX(15deg) translateY(0) } }
@keyframes ie-gun { 0% { transform: rotate(-20deg) scaleX(1) } 50% { transform: rotate(-22deg) scaleX(1.02) } 100% { transform: rotate(-20deg) scaleX(1) } }
@keyframes ie-hat { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes ie-glove { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(12deg) scale(1.02) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes ie-shadow { 0% { opacity: 0.4; transform: translateY(0) } 50% { opacity: 0.6; transform: translateY(-5px) } 100% { opacity: 0.4; transform: translateY(0) } }
@keyframes ie-lamp { 0% { box-shadow: 0 0 40px 15px rgba(240,200,120,0.6); } 50% { box-shadow: 0 0 80px 25px rgba(255,220,150,1); } 100% { box-shadow: 0 0 50px 18px rgba(240,200,120,0.7); } }
@keyframes ie-glow { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }

.scn-golden-pince-nez {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #d9c8a8 50%, #c0a880 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 70%);
  perspective: 1000px;
}
.scn-golden-pince-nez .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #e8dccc 0%, #f2e4d0 50%, #dacabc 100%);
  animation: gpn-wall 20s ease-in-out infinite;
}
.scn-golden-pince-nez .window {
  position: absolute; top: 8%; left: 20%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 30% 20%, #fffaee 0%, #b8a890 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(200,180,140,0.3);
  animation: gpn-window 12s ease-in-out infinite alternate;
}
.scn-golden-pince-nez .desk {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #a0876a 0%, #7a6048 100%);
  border-radius: 6% 6% 0 0;
  transform: rotateX(5deg);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: gpn-desk 30s ease-in-out infinite;
}
.scn-golden-pince-nez .lamp {
  position: absolute; bottom: 45%; left: 60%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #c0a040 0%, #8a6a20 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,160,60,0.6);
  animation: gpn-lamp 6s ease-in-out infinite alternate;
}
.scn-golden-pince-nez .glasses {
  position: absolute; bottom: 25%; left: 35%; width: 18%; height: 8%;
  background: radial-gradient(circle at 50% 50%, #d4b070 0%, #8a7048 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 60% 60%;
  box-shadow: 0 0 12px 2px rgba(180,140,80,0.5);
  animation: gpn-glasses 4s ease-in-out infinite;
}
.scn-golden-pince-nez .holmes-silhouette {
  position: absolute; bottom: 20%; left: 18%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #3a2e22 0%, #2a1e12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: gpn-holmes 10s ease-in-out infinite;
}
.scn-golden-pince-nez .paper-sheet {
  position: absolute; bottom: 30%; left: 30%; width: 20%; height: 15%;
  background: #f8f0d8;
  border-radius: 2%;
  box-shadow: 2px 4px 10px rgba(0,0,0,0.2);
  animation: gpn-paper 8s ease-in-out infinite alternate;
}
.scn-golden-pince-nez .glow-spot {
  position: absolute; bottom: 30%; left: 38%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  animation: gpn-glow 3s ease-in-out infinite alternate;
}
@keyframes gpn-wall { 0% { opacity:0.9; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.05); } 100% { opacity:0.92; filter: brightness(0.98); } }
@keyframes gpn-window { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.02); opacity:1; } 100% { transform: scale(0.98); opacity:0.95; } }
@keyframes gpn-desk { 0% { transform: rotateX(5deg) translateY(0); } 50% { transform: rotateX(5deg) translateY(-2px); } 100% { transform: rotateX(5deg) translateY(0); } }
@keyframes gpn-lamp { 0% { filter: brightness(0.9); box-shadow: 0 0 20px 6px rgba(200,160,60,0.4); } 50% { filter: brightness(1.1); box-shadow: 0 0 40px 12px rgba(200,160,60,0.7); } 100% { filter: brightness(0.95); box-shadow: 0 0 25px 8px rgba(200,160,60,0.5); } }
@keyframes gpn-glasses { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes gpn-holmes { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gpn-paper { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gpn-glow { 0% { opacity:0.6; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:0.7; transform: scale(0.9); } }

.scn-holmes-deduces-woman {
  background: 
    linear-gradient(180deg, #eddcc8 0%, #d4bea0 50%, #b89a78 100%),
    radial-gradient(ellipse at 50% 100%, #ffffff50 0%, transparent 60%);
}
.scn-holmes-deduces-woman .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b498 0%, #e0d0b8 50%, #c4aa8a 100%);
  animation: hdw-room 18s ease-in-out infinite;
}
.scn-holmes-deduces-woman .desk-top {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #9a7a58 0%, #6a5030 100%);
  border-radius: 4% 4% 0 0;
  transform: rotateX(4deg);
  box-shadow: 0 6px 15px rgba(0,0,0,0.3);
  animation: hdw-desk 20s ease-in-out infinite;
}
.scn-holmes-deduces-woman .note-paper {
  position: absolute; bottom: 25%; left: 35%; width: 22%; height: 18%;
  background: #faf3e2;
  border-radius: 2%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.15);
  animation: hdw-note 6s ease-in-out infinite alternate;
}
.scn-holmes-deduces-woman .glasses-close {
  position: absolute; bottom: 32%; left: 40%; width: 14%; height: 6%;
  background: radial-gradient(circle at 30% 50%, #c8a468 0%, #8a6a38 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  box-shadow: 0 0 10px 2px rgba(150,110,60,0.4);
  animation: hdw-glasses 4s ease-in-out infinite;
}
.scn-holmes-deduces-woman .hand-writing {
  position: absolute; bottom: 22%; left: 38%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: hdw-hand 5s ease-in-out infinite;
}
.scn-holmes-deduces-woman .candle {
  position: absolute; bottom: 40%; left: 58%; width: 6%; height: 16%;
  background: linear-gradient(180deg, #f0d090 0%, #d0a050 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(200,160,60,0.5);
  animation: hdw-candle 8s ease-in-out infinite alternate;
}
.scn-holmes-deduces-woman .shadow-figure {
  position: absolute; bottom: 10%; right: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  opacity: 0.7;
  animation: hdw-shadow 12s ease-in-out infinite;
}
@keyframes hdw-room { 0% { filter: brightness(1); } 50% { filter: brightness(1.04); } 100% { filter: brightness(0.98); } }
@keyframes hdw-desk { 0% { transform: rotateX(4deg) translateY(0); } 50% { transform: rotateX(4deg) translateY(-2px); } 100% { transform: rotateX(4deg) translateY(0); } }
@keyframes hdw-note { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.01); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes hdw-glasses { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hdw-hand { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes hdw-candle { 0% { filter: brightness(0.9); box-shadow: 0 0 20px 5px rgba(200,160,60,0.4); } 50% { filter: brightness(1.2); box-shadow: 0 0 40px 12px rgba(200,160,60,0.7); } 100% { filter: brightness(1); box-shadow: 0 0 25px 8px rgba(200,160,60,0.5); } }
@keyframes hdw-shadow { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.02); opacity:0.8; } 100% { transform: scale(0.98); opacity:0.65; } }

.scn-deduction-explained {
  background: 
    linear-gradient(180deg, #eedcc0 0%, #d4bea0 50%, #b89878 100%),
    radial-gradient(ellipse at 50% 20%, #fff4e0 0%, transparent 70%);
}
.scn-deduction-explained .study-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #dac8b0 0%, #e6d6c0 50%, #c8b098 100%);
  animation: dex-wall 14s ease-in-out infinite;
}
.scn-deduction-explained .window-light {
  position: absolute; top: 5%; left: 10%; width: 35%; height: 50%;
  background: radial-gradient(ellipse at 40% 30%, #fff9e4 0%, #d0c0a0 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 30px rgba(220,200,160,0.4);
  animation: dex-window 10s ease-in-out infinite alternate;
}
.scn-deduction-explained .holmes-profile {
  position: absolute; bottom: 15%; left: 20%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dex-holmes 8s ease-in-out infinite;
}
.scn-deduction-explained .hopkins-silhouette {
  position: absolute; bottom: 15%; right: 20%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a2218 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dex-hopkins 10s ease-in-out infinite alternate;
}
.scn-deduction-explained .glasses-held {
  position: absolute; bottom: 35%; left: 28%; width: 12%; height: 5%;
  background: radial-gradient(circle at 50% 50%, #d0a868 0%, #8a6a30 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 60% 60%;
  box-shadow: 0 0 15px 4px rgba(160,120,50,0.5);
  animation: dex-glasses 5s ease-in-out infinite;
}
.scn-deduction-explained .table-edge {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a6a48 0%, #5a3a1a 100%);
  border-radius: 4% 4% 0 0;
  transform: rotateX(3deg);
  animation: dex-table 25s ease-in-out infinite;
}
.scn-deduction-explained .book-stack {
  position: absolute; bottom: 18%; right: 35%; width: 18%; height: 15%;
  background: linear-gradient(180deg, #6a5030 0%, #4a321a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 5px 5px 10px rgba(0,0,0,0.2);
  animation: dex-books 15s ease-in-out infinite alternate;
}
.scn-deduction-explained .lamp-glow {
  position: absolute; bottom: 28%; left: 16%; width: 10%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  animation: dex-lampglow 4s ease-in-out infinite alternate;
}
@keyframes dex-wall { 0% { opacity:0.95; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.05); } 100% { opacity:0.97; filter: brightness(0.98); } }
@keyframes dex-window { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.01); opacity:1; } 100% { transform: scale(0.99); opacity:0.93; } }
@keyframes dex-holmes { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dex-hopkins { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes dex-glasses { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(3deg) scale(1.03); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes dex-table { 0% { transform: rotateX(3deg) translateY(0); } 50% { transform: rotateX(3deg) translateY(-1px); } 100% { transform: rotateX(3deg) translateY(0); } }
@keyframes dex-books { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dex-lampglow { 0% { opacity:0.5; transform: scale(0.8); } 50% { opacity:0.9; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(0.9); } }

.scn-further-deductions {
  background: 
    linear-gradient(180deg, #dcc8ac 0%, #c4ae92 50%, #a88e70 100%),
    radial-gradient(ellipse at 50% 50%, #fff0d0 0%, transparent 80%);
}
.scn-further-deductions .table-surface {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, #9a7a58 0%, #6a5030 100%);
  border-radius: 8% 8% 0 0;
  transform: rotateX(10deg);
  box-shadow: 0 -10px 30px rgba(0,0,0,0.3);
  animation: fde-table 20s ease-in-out infinite;
}
.scn-further-deductions .glasses-top {
  position: absolute; top: 35%; left: 30%; width: 40%; height: 18%;
  background: radial-gradient(ellipse at 50% 50%, #d4b070 0%, #a08048 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  box-shadow: 0 0 20px 6px rgba(180,140,60,0.4);
  animation: fde-glasses 6s ease-in-out infinite;
}
.scn-further-deductions .reflection {
  position: absolute; top: 36%; left: 33%; width: 30%; height: 10%;
  background: linear-gradient(135deg, #fff8e0 0%, transparent 60%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  opacity: 0.6;
  animation: fde-reflect 4s ease-in-out infinite alternate;
}
.scn-further-deductions .shadow-detail {
  position: absolute; top: 52%; left: 32%; width: 36%; height: 6%;
  background: linear-gradient(180deg, #4a3a28 0%, transparent 100%);
  border-radius: 50%;
  animation: fde-shadow 8s ease-in-out infinite;
}
.scn-further-deductions .frame-arm {
  position: absolute; top: 40%; left: 20%; width: 15%; height: 4%;
  background: linear-gradient(90deg, #c0a060 0%, #8a6a30 100%);
  border-radius: 20%;
  transform: rotate(-15deg);
  animation: fde-arm 5s ease-in-out infinite;
}
.scn-further-deductions .light-source {
  position: absolute; top: 10%; left: 50%; width: 20%; height: 20%;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  animation: fde-light 7s ease-in-out infinite alternate;
}
.scn-further-deductions .blur-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 30%, #fffff0 0%, transparent 60%);
  filter: blur(10px);
  opacity: 0.3;
  animation: fde-blur 12s ease-in-out infinite;
}
@keyframes fde-table { 0% { transform: rotateX(10deg) translateY(0); } 50% { transform: rotateX(10deg) translateY(-2px); } 100% { transform: rotateX(10deg) translateY(0); } }
@keyframes fde-glasses { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes fde-reflect { 0% { opacity:0.4; transform: translateX(0); } 50% { opacity:0.8; transform: translateX(5px); } 100% { opacity:0.5; transform: translateX(2px); } }
@keyframes fde-shadow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.35; transform: scale(0.95); } }
@keyframes fde-arm { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes fde-light { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes fde-blur { 0% { opacity:0.2; filter: blur(8px); } 50% { opacity:0.4; filter: blur(12px); } 100% { opacity:0.25; filter: blur(10px); } }

.scn-hopkins-accepts-theory {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 40%, #b8a890 100%),
              radial-gradient(ellipse at 50% 100%, #c8b898 0%, transparent 70%);
}
.scn-hopkins-accepts-theory .room-bg {
  position: absolute; inset: 0; width:100%; height:50%; top:0;
  background: linear-gradient(135deg, #f0e2d0 0%, #e0d0b8 100%);
  animation: ha-bg 12s ease-in-out infinite alternate;
}
.scn-hopkins-accepts-theory .window-frame {
  position: absolute; top:8%; left:20%; width:35%; height:45%;
  background: linear-gradient(180deg, #b09878 0%, #8a7a5c 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: ha-window 8s ease-in-out infinite;
}
.scn-hopkins-accepts-theory .pond {
  position: absolute; bottom:30%; left:5%; width:55%; height:18%;
  background: linear-gradient(135deg, #7ba8b8 0%, #5a8a9a 50%, #4a7a8a 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.2);
  animation: ha-pond 10s ease-in-out infinite alternate;
}
.scn-hopkins-accepts-theory .desk {
  position: absolute; bottom:18%; left:35%; width:45%; height:12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: ha-desk 6s ease-in-out infinite;
}
.scn-hopkins-accepts-theory .figure-hopkins {
  position: absolute; bottom:22%; left:42%; width:20px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figure 4s ease-in-out infinite;
}
.scn-hopkins-accepts-theory .shadow {
  position: absolute; bottom:15%; left:38%; width:30%; height:8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: ha-shadow 6s ease-in-out infinite alternate;
}
.scn-hopkins-accepts-theory .documents {
  position: absolute; bottom:20%; left:50%; width:12%; height:3%;
  background: linear-gradient(90deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  animation: ha-docs 8s ease-in-out infinite;
}
.scn-hopkins-accepts-theory .papers {
  position: absolute; bottom:22%; left:55%; width:8%; height:2%;
  background: #e8d8b8;
  border-radius: 1px;
  animation: ha-papers 5s ease-in-out infinite alternate;
}
@keyframes ha-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ha-window { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes ha-pond { 0% { opacity:0.85; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:0.9; transform: translateY(0) } }
@keyframes ha-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ha-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes ha-shadow { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.2 } }
@keyframes ha-docs { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }
@keyframes ha-papers { 0% { transform: translateX(0) rotate(0) } 100% { transform: translateX(-5px) rotate(3deg) } }

.scn-theory-falls {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 30%, #b0a090 60%, #908070 100%),
              radial-gradient(ellipse at 30% 80%, #c0b0a0 0%, transparent 60%);
}
.scn-theory-falls .office-bg {
  position: absolute; inset:0; width:100%; height:100%;
  background: linear-gradient(135deg, #e0d4c4 0%, #c8b8a8 50%, #a89888 100%);
  animation: tf-bg 5s ease-in-out infinite alternate;
}
.scn-theory-falls .map {
  position: absolute; top:15%; left:10%; width:55%; height:35%;
  background: linear-gradient(135deg, #d4c8b0 0%, #b8a890 100%);
  border: 3px solid #8a7a64; border-radius: 4px;
  animation: tf-map 8s ease-in-out infinite alternate;
}
.scn-theory-falls .desk-chair {
  position: absolute; bottom:20%; left:25%; width:40%; height:15%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: tf-chair 6s ease-in-out infinite;
}
.scn-theory-falls .figure-inspector {
  position: absolute; bottom:22%; left:38%; width:22px; height:42px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-figure 3s ease-in-out infinite;
}
.scn-theory-falls .papers-fly {
  position: absolute; top:45%; left:50%; width:6%; height:4%;
  background: #e0d0b8;
  border-radius: 2px;
  animation: tf-fly 4s ease-in-out infinite;
}
.scn-theory-falls .papers-fly::after {
  content: ''; position: absolute; top:-2px; left:8px; width:80%; height:100%;
  background: #d0c0a8; border-radius: 2px;
  animation: tf-fly2 3.5s ease-in-out infinite reverse;
}
.scn-theory-falls .lamp {
  position: absolute; top:10%; left:5%; width:8%; height:20%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 50% 50% 10% 10%;
  animation: tf-lamp 10s ease-in-out infinite alternate;
}
.scn-theory-falls .clock {
  position: absolute; top:8%; right:8%; width:12%; height:16%;
  background: radial-gradient(circle, #f0e0c0 0%, #c0b090 70%);
  border-radius: 50%; border: 4px solid #8a7a64;
  animation: tf-clock 7s ease-in-out infinite;
}
.scn-theory-falls .shadow-stripe {
  position: absolute; top:0; left:45%; width:4%; height:100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 50%, transparent 100%);
  animation: tf-stripe 6s ease-in-out infinite alternate;
}
@keyframes tf-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tf-map { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes tf-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tf-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(6px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(12px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(18px) translateY(0) rotate(0) } }
@keyframes tf-fly { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(10px, -15px) rotate(5deg) } 50% { transform: translate(5px, -25px) rotate(10deg) } 75% { transform: translate(-5px, -15px) rotate(-5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes tf-fly2 { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(-8px, -10px) rotate(-3deg) } 50% { transform: translate(-3px, -20px) rotate(6deg) } 75% { transform: translate(8px, -12px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes tf-lamp { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tf-clock { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes tf-stripe { 0% { transform: translateX(-5px) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }

.scn-dinner-and-fire {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2212 20%, #4a2a14 40%, #3a1a0a 60%, #2a1208 100%),
              radial-gradient(ellipse at 50% 100%, #6a3a1a 0%, transparent 70%);
}
.scn-dinner-and-fire .wall {
  position: absolute; inset:0; width:100%; height:60%; top:0;
  background: linear-gradient(180deg, #4a3220 0%, #3a2212 100%);
  animation: df-wall 15s ease-in-out infinite alternate;
}
.scn-dinner-and-fire .fireplace {
  position: absolute; bottom:22%; left:20%; width:45%; height:35%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a14 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  animation: df-fireplace 8s ease-in-out infinite;
}
.scn-dinner-and-fire .fire-glow {
  position: absolute; bottom:28%; left:30%; width:20%; height:20%;
  background: radial-gradient(circle, #ff8040 0%, #ff6020 30%, #c04010 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,128,64,0.4);
  animation: df-glow 4s ease-in-out infinite alternate;
}
.scn-dinner-and-fire .armchair {
  position: absolute; bottom:12%; left:20%; width:30%; height:20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: df-chair 10s ease-in-out infinite alternate;
}
.scn-dinner-and-fire .figure-holmes {
  position: absolute; bottom:18%; left:22%; width:18px; height:36px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-holmes 5s ease-in-out infinite;
}
.scn-dinner-and-fire .slippers {
  position: absolute; bottom:12%; left:28%; width:8%; height:4%;
  background: #5a3a1a;
  border-radius: 20% 20% 30% 30%;
  animation: df-slippers 6s ease-in-out infinite;
}
.scn-dinner-and-fire .pipe-smoke {
  position: absolute; top:15%; left:34%; width:12%; height:18%;
  background: radial-gradient(ellipse, rgba(200,180,150,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: df-smoke 7s ease-in-out infinite;
}
.scn-dinner-and-fire .clock-mantel {
  position: absolute; top:10%; right:15%; width:10%; height:14%;
  background: radial-gradient(circle, #c0a070 0%, #8a6030 80%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px rgba(255,128,64,0.2);
  animation: df-clock 12s ease-in-out infinite;
}
@keyframes df-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes df-fireplace { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes df-glow { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes df-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes df-holmes { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(4px) rotate(0) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes df-slippers { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(5deg) } }
@keyframes df-smoke { 0% { transform: translateY(0) scale(1); opacity:0.4 } 50% { transform: translateY(-8px) scale(1.2); opacity:0.2 } 100% { transform: translateY(-16px) scale(1.5); opacity:0 } }
@keyframes df-clock { 0%,100% { transform: rotate(0) } 50% { transform: rotate(1deg) } }

.scn-last-scene-drama {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a0e 30%, #3a2212 60%, #2a1a0e 100%),
              radial-gradient(ellipse at 50% 100%, #4a2a14 0%, transparent 60%);
}
.scn-last-scene-drama .room-shadow {
  position: absolute; inset:0; width:100%; height:100%;
  background: linear-gradient(135deg, #2a1a0e 0%, #1a0e08 100%);
  animation: ls-shadow 10s ease-in-out infinite alternate;
}
.scn-last-scene-drama .doorway {
  position: absolute; bottom:10%; left:30%; width:40%; height:80%;
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a0e 50%, #3a2212 100%);
  border-radius: 4% 4% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: ls-door 8s ease-in-out infinite;
}
.scn-last-scene-drama .figure-entering {
  position: absolute; bottom:12%; left:40%; width:24px; height:48px;
  background: linear-gradient(180deg, #0a0604 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-enter 6s ease-in-out infinite;
}
.scn-last-scene-drama .fireplace-glow {
  position: absolute; bottom:20%; right:15%; width:30%; height:30%;
  background: radial-gradient(circle, #ff7040 0%, #c05020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px rgba(255,112,64,0.3);
  animation: ls-fireglow 5s ease-in-out infinite alternate;
}
.scn-last-scene-drama .floor {
  position: absolute; bottom:0; left:0; width:100%; height:12%;
  background: linear-gradient(180deg, #3a2212 0%, #2a1a0e 100%);
  animation: ls-floor 12s ease-in-out infinite;
}
.scn-last-scene-drama .lamp-light {
  position: absolute; top:15%; left:10%; width:15%; height:25%;
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #c09040 50%, transparent 80%);
  border-radius: 50%;
  animation: ls-lamp 7s ease-in-out infinite alternate;
}
.scn-last-scene-drama .figure-watson {
  position: absolute; bottom:14%; left:18%; width:16px; height:38px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-watson 4s ease-in-out infinite;
}
.scn-last-scene-drama .drapes {
  position: absolute; top:0; left:0; width:100%; height:30%;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1a0e 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: ls-drapes 8s ease-in-out infinite alternate;
}
@keyframes ls-shadow { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ls-door { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } }
@keyframes ls-enter { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(16px) translateY(-1px) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes ls-fireglow { 0% { opacity:0.6; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes ls-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ls-lamp { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ls-watson { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 60% { transform: translateX(4px) translateY(0) rotate(-1deg) } 100% { transform: translateX(6px) translateY(0) rotate(0) } }
@keyframes ls-drapes { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

.scn-soames-asks-discretion { background: linear-gradient(180deg, #1a1a2e 0%, #2a2035 40%, #3a2a45 100%), radial-gradient(ellipse at 50% 80%, #3a2a45 0%, transparent 60%); }
.scn-soames-asks-discretion .room-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, #0f0f1e 0%, transparent 70%); animation: sad-shadow 8s ease-in-out infinite alternate; }
.scn-soames-asks-discretion .wall    { position:absolute; inset:10% 5% 30% 5%; background: linear-gradient(180deg, #3a2a3e 0%, #1e1a2a 100%); border-radius: 2px; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-soames-asks-discretion .desk    { position:absolute; bottom:18%; left:25%; right:25%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.7); animation: sad-desk 12s ease-in-out infinite; }
.scn-soames-asks-discretion .lamp-glow { position:absolute; bottom:38%; left:30%; width:20px; height:20px; background: radial-gradient(circle, #d4a050 0%, #b08030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(180,120,40,.5), 0 0 120px 60px rgba(180,120,40,.2); animation: sad-lamp 3s ease-in-out infinite alternate; }
.scn-soames-asks-discretion .soames-figure { position:absolute; bottom:20%; left:38%; width:30px; height:60px; background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sad-soames 6s ease-in-out infinite; }
.scn-soames-asks-discretion .holmes-figure { position:absolute; bottom:20%; left:55%; width:28px; height:58px; background: linear-gradient(180deg, #0a0a1a 0%, #16162a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center; animation: sad-holmes 4s ease-in-out infinite; }
.scn-soames-asks-discretion .floor-shadow { position:absolute; bottom:12%; left:20%; right:20%; height:6%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(4px); animation: sad-floor 10s ease-in-out infinite; }
@keyframes sad-shadow { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes sad-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes sad-lamp { 0% { box-shadow: 0 0 40px 20px rgba(180,120,40,.3), 0 0 80px 40px rgba(180,120,40,.1); opacity:.8; } 50% { box-shadow: 0 0 70px 35px rgba(180,120,40,.6), 0 0 140px 70px rgba(180,120,40,.3); opacity:1; } 100% { box-shadow: 0 0 50px 25px rgba(180,120,40,.4), 0 0 100px 50px rgba(180,120,40,.15); opacity:.85; } }
@keyframes sad-soames { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(0); } 50% { transform: translateX(0) translateY(-2px) rotate(1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(0); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes sad-holmes { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 30% { transform: translateX(-1px) translateY(-2px) rotate(3deg); } 60% { transform: translateX(1px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes sad-floor { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.4; } }

.scn-holmes-ungracious-accept { background: linear-gradient(180deg, #1c1828 0%, #2a2238 50%, #3a2a48 100%), radial-gradient(ellipse at 60% 40%, #3a2a48 0%, transparent 70%); }
.scn-holmes-ungracious-accept .bg-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 55% 50%, #0d0d1a 0%, transparent 80%); animation: hua-bg 10s ease-in-out infinite; }
.scn-holmes-ungracious-accept .wall-texture { position:absolute; inset:15% 10% 20% 10%; background: linear-gradient(135deg, #2a2230 0%, #4a3a50 40%, #2a2230 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: hua-wall 20s linear infinite; }
.scn-holmes-ungracious-accept .holmes-bust { position:absolute; bottom:30%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hua-bust 4s ease-in-out infinite; }
.scn-holmes-ungracious-accept .holmes-shoulder { position:absolute; bottom:20%; left:25%; right:20%; height:20%; background: linear-gradient(180deg, #16162a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: hua-shoulder 6s ease-in-out infinite; }
.scn-holmes-ungracious-accept .soames-silhouette { position:absolute; bottom:35%; right:15%; width:30px; height:45px; background: #111122; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; opacity:.6; animation: hua-soames 8s ease-in-out infinite; }
.scn-holmes-ungracious-accept .table-edge { position:absolute; bottom:15%; left:10%; right:10%; height:4%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); box-shadow: 0 -2px 10px rgba(0,0,0,.8); }
.scn-holmes-ungracious-accept .watch-chain { position:absolute; bottom:40%; left:35%; width:4px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 2px; transform-origin: top center; animation: hua-chain 3s ease-in-out infinite; }
@keyframes hua-bg { 0% { opacity:.9; } 50% { opacity:.7; } 100% { opacity:.85; } }
@keyframes hua-wall { 0% { background-position: 0% 0%; } 50% { background-position: 100% 100%; } 100% { background-position: 0% 0%; } }
@keyframes hua-bust { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(3px) translateY(-2px) rotate(5deg); } 60% { transform: translateX(-2px) translateY(0) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hua-shoulder { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(1px) scale(1); } }
@keyframes hua-soames { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(4px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes hua-chain { 0% { transform: rotate(-2deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-2deg); } }

.scn-fortescue-scholarship-exam { background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 50%, #c0b8a8 100%), radial-gradient(ellipse at 70% 20%, #fff8f0 0%, transparent 60%); }
.scn-fortescue-scholarship-exam .daylight-window { position:absolute; top:5%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #f0e8d8 0%, #d8d0c0 100%); border: 4px solid #a09888; border-radius: 4px; box-shadow: inset 0 0 60px rgba(255,255,200,.4); animation: fse-window 15s ease-in-out infinite; }
.scn-fortescue-scholarship-exam .desk-surface { position:absolute; bottom:20%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #b8a890 0%, #9a8a78 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.2); }
.scn-fortescue-scholarship-exam .papers-stack { position:absolute; bottom:25%; left:25%; width:40%; height:15%; background: linear-gradient(180deg, #f0e8d8 0%, #e0d8c8 100%); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: fse-papers 8s ease-in-out infinite; }
.scn-fortescue-scholarship-exam .examiner-figure { position:absolute; bottom:25%; left:60%; width:35px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fse-examiner 6s ease-in-out infinite; }
.scn-fortescue-scholarship-exam .inkwell { position:absolute; bottom:30%; left:30%; width:12px; height:16px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%; animation: fse-ink 12s ease-in-out infinite; }
.scn-fortescue-scholarship-exam .chair-back { position:absolute; bottom:30%; left:68%; width:20px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; transform-origin: bottom; animation: fse-chair 10s ease-in-out infinite; }
.scn-fortescue-scholarship-exam .hand-tremor { position:absolute; bottom:30%; left:55%; width:10px; height:8px; background: radial-gradient(circle, #d8c8b8 0%, transparent 100%); border-radius: 50%; animation: fse-hand 3s ease-in-out infinite; }
@keyframes fse-window { 0% { opacity:.95; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes fse-papers { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fse-examiner { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(-2px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes fse-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fse-chair { 0% { transform: rotate(0); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(0); } }
@keyframes fse-hand { 0% { transform: translateY(0) scale(1); opacity:.7; } 50% { transform: translateY(-1px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.7; } }

.scn-proofs-arrive { background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 50%, #c0b8a8 100%), radial-gradient(ellipse at 30% 70%, #f0e8d8 0%, transparent 70%); }
.scn-proofs-arrive .sunbeam { position:absolute; top:5%; left:10%; width:30%; height:60%; background: linear-gradient(135deg, rgba(255,255,200,.4) 0%, rgba(255,255,200,.1) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: par-sunbeam 25s ease-in-out infinite alternate; }
.scn-proofs-arrive .desk-top { position:absolute; bottom:15%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.15); }
.scn-proofs-arrive .proofs-sheets { position:absolute; bottom:20%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #f0e8d8 0%, #e0d8c8 100%); border-radius: 3px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: par-proofs 20s ease-in-out infinite; }
.scn-proofs-arrive .ink-bottle { position:absolute; bottom:25%; left:22%; width:14px; height:18px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%; animation: par-ink 30s ease-in-out infinite; }
.scn-proofs-arrive .spectacles { position:absolute; bottom:30%; left:40%; width:20px; height:6px; background: #8a7a6a; border-radius: 50%; box-shadow: 0 0 0 2px #8a7a6a; animation: par-specs 15s ease-in-out infinite; }
.scn-proofs-arrive .chair-silhouette { position:absolute; bottom:18%; left:65%; width:25px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; animation: par-chair 12s ease-in-out infinite; }
.scn-proofs-arrive .pencil { position:absolute; bottom:22%; left:55%; width:12px; height:3px; background: #c8553d; border-radius: 1px; transform-origin: left center; animation: par-pencil 8s ease-in-out infinite; }
@keyframes par-sunbeam { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.1); } 100% { opacity:.4; transform: scaleX(0.9); } }
@keyframes par-proofs { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes par-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes par-specs { 0% { transform: rotate(0); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(0); } }
@keyframes par-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes par-pencil { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 50% { transform: rotate(0) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }

/* narrative-transition – calm overcast study */
.scn-narrative-transition {
  background: linear-gradient(180deg, #6b7b8c 0%, #4a5a6a 40%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0%, #8a9aac 0%, transparent 70%);
}
.scn-narrative-transition .sky-out {
  position: absolute; inset: 0 0 45% 20%; background: linear-gradient(180deg, #8a9aac 0%, #6b7b8c 100%); border-radius: 0 0 10% 10%; animation: nt-sky 15s ease-in-out infinite alternate;
}
.scn-narrative-transition .clouds-nt {
  position: absolute; top: 8%; left: 10%; width: 120px; height: 20px; background: rgba(220,230,240,0.4); filter: blur(8px); border-radius: 50%; animation: nt-clouds 40s linear infinite;
}
.scn-narrative-transition .window-nt {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 45%; background: transparent; border: 6px solid #3a2a1a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.15); animation: nt-window 8s ease-in-out infinite alternate;
}
.scn-narrative-transition .desk-nt {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 25%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); animation: nt-desk 12s ease-in-out infinite;
}
.scn-narrative-transition .lamp-nt {
  position: absolute; bottom: 28%; left: 55%; width: 12px; height: 20px; background: linear-gradient(180deg, #c8a060 0%, #8a6a30 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: nt-lamp 4s ease-in-out infinite alternate;
}
.scn-narrative-transition .glow-nt {
  position: absolute; bottom: 30%; left: 54%; width: 40px; height: 40px; background: radial-gradient(circle, rgba(255,200,80,0.6) 0%, rgba(255,200,80,0) 70%); border-radius: 50%; animation: nt-glow 3s ease-in-out infinite alternate;
}
.scn-narrative-transition .books-nt {
  position: absolute; bottom: 10%; right: 20%; width: 40px; height: 50px; background: linear-gradient(90deg, #5a3a1a 0%, #4a2a0a 50%, #5a3a1a 100%); border-radius: 6%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: nt-books 10s ease-in-out infinite;
}
.scn-narrative-transition .figure-nt {
  position: absolute; bottom: 12%; left: 25%; width: 16px; height: 40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nt-figure 5s ease-in-out infinite;
}
@keyframes nt-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes nt-clouds { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes nt-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.1) } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.2) } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.15) } }
@keyframes nt-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nt-lamp { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes nt-glow { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.2) } 100% { opacity: 0.5; transform: scale(0.9) } }
@keyframes nt-books { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes nt-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* narrative-95-cases – overcast desk with case papers */
.scn-narrative-95-cases {
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 100%, #6a7a8a 0%, transparent 70%);
}
.scn-narrative-95-cases .desk-nc {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.4);
}
.scn-narrative-95-cases .paper-stack {
  position: absolute; bottom: 15%; left: 20%; width: 30%; height: 12%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 6%; box-shadow: 0 2px 8px rgba(0,0,0,0.2); animation: nc-stack 14s ease-in-out infinite;
}
.scn-narrative-95-cases .paper-single {
  position: absolute; bottom: 25%; left: 45%; width: 20%; height: 6%; background: #f0e4d0; border-radius: 4%; transform: rotate(-5deg); box-shadow: 0 1px 4px rgba(0,0,0,0.15); animation: nc-paper 8s ease-in-out infinite alternate;
}
.scn-narrative-95-cases .magnifier {
  position: absolute; bottom: 10%; left: 55%; width: 10px; height: 20px; background: radial-gradient(circle at 50% 30%, #d0e0f0 0%, #8090a0 100%); border-radius: 50%; box-shadow: 0 0 0 3px #6a5a4a; transform: rotate(15deg); animation: nc-magnify 12s ease-in-out infinite;
}
.scn-narrative-95-cases .pipe-nc {
  position: absolute; bottom: 12%; right: 15%; width: 40px; height: 6px; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10%; transform: rotate(-10deg); animation: nc-pipe 6s ease-in-out infinite alternate;
}
.scn-narrative-95-cases .candle-nc {
  position: absolute; bottom: 20%; right: 8%; width: 8px; height: 30px; background: linear-gradient(180deg, #f0e0c0 0%, #c8a070 100%); border-radius: 20% 20% 10% 10%; animation: nc-candle 5s ease-in-out infinite;
}
.scn-narrative-95-cases .candle-glow {
  position: absolute; bottom: 22%; right: 7%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(255,200,100,0.5) 0%, rgba(255,200,100,0) 70%); border-radius: 50%; animation: nc-glow 3s ease-in-out infinite alternate;
}
@keyframes nc-stack { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes nc-paper { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(0deg) translateX(2px) } 100% { transform: rotate(-8deg) translateX(0) } }
@keyframes nc-magnify { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(20deg) scale(1.05) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes nc-pipe { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes nc-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes nc-glow { 0% { opacity: 0.3; transform: scale(0.9) } 50% { opacity: 0.6; transform: scale(1.1) } 100% { opacity: 0.4; transform: scale(0.95) } }

/* holmes-exercise-strange – bright interior with doorway */
.scn-holmes-exercise-strange {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 40%, #c0a890 100%), radial-gradient(ellipse at 50% 100%, #e8d8c0 0%, transparent 70%);
}
.scn-holmes-exercise-strange .wall-he {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0e8d8 0%, #d8c8b0 100%); z-index: 0;
}
.scn-holmes-exercise-strange .doorway {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 90%; background: #4a3a2a; border-radius: 40% 40% 0 0; box-shadow: inset -6px 0 12px rgba(0,0,0,0.3); animation: he-door 10s ease-in-out infinite alternate;
}
.scn-holmes-exercise-strange .floor-he {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #b8a890 0%, #9a8a78 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
}
.scn-holmes-exercise-strange .desk-he {
  position: absolute; bottom: 12%; left: 10%; width: 25%; height: 20%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 6%; box-shadow: 0 2px 10px rgba(0,0,0,0.3); animation: he-desk 14s ease-in-out infinite;
}
.scn-holmes-exercise-strange .chair-he {
  position: absolute; bottom: 10%; left: 8%; width: 14px; height: 24px; background: #3a2a1a; border-radius: 30% 30% 10% 10%; transform: rotate(-5deg); animation: he-chair 9s ease-in-out infinite;
}
.scn-holmes-exercise-strange .figure-he {
  position: absolute; bottom: 10%; left: 12%; width: 18px; height: 42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-figure 6s ease-in-out infinite;
}
.scn-holmes-exercise-strange .visitor-he {
  position: absolute; bottom: 10%; left: 65%; width: 20px; height: 44px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: he-visitor 8s ease-in-out infinite;
}
@keyframes he-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1.02) } }
@keyframes he-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes he-chair { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(0deg) translateX(2px) } 100% { transform: rotate(-8deg) translateX(0) } }
@keyframes he-figure { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(3deg) translateX(4px) } 50% { transform: rotate(-2deg) translateX(8px) } 75% { transform: rotate(1deg) translateX(4px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes he-visitor { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }

/* holmes-pig-stabbing – funny bright interior with pig */
.scn-holmes-pig-stabbing {
  background: linear-gradient(180deg, #f4e0c0 0%, #e0c8a0 40%, #c8b088 100%), radial-gradient(circle at 70% 50%, #fff8e0 0%, transparent 50%);
}
.scn-holmes-pig-stabbing .floor-hp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #b8a080 0%, #9a8870 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,0.25);
}
.scn-holmes-pig-stabbing .wall-hp {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(135deg, #f0dcc0 0%, #d8c0a0 100%);
}
.scn-holmes-pig-stabbing .holmes-hp {
  position: absolute; bottom: 18%; left: 25%; width: 20px; height: 48px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-holmes 2s ease-in-out infinite;
}
.scn-holmes-pig-stabbing .pig-hp {
  position: absolute; bottom: 22%; left: 38%; width: 50px; height: 30px; background: radial-gradient(ellipse at 50% 50%, #d8a080 0%, #b88060 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); transform-origin: 30% 100%; animation: hp-pig 3s ease-in-out infinite alternate;
}
.scn-holmes-pig-stabbing .watson-hp {
  position: absolute; bottom: 18%; left: 65%; width: 18px; height: 44px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: hp-watson 1.5s ease-in-out infinite;
}
.scn-holmes-pig-stabbing .table-hp {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 6%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 12%; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: hp-table 8s ease-in-out infinite;
}
.scn-holmes-pig-stabbing .hook-hp {
  position: absolute; bottom: 28%; left: 43%; width: 4px; height: 18px; background: #4a3a2a; border-radius: 30%; transform: rotate(10deg); animation: hp-hook 4s ease-in-out infinite alternate;
}
.scn-holmes-pig-stabbing .shadow-hp {
  position: absolute; bottom: 14%; left: 30%; width: 40%; height: 6px; background: rgba(0,0,0,0.2); filter: blur(4px); border-radius: 50%; animation: hp-shadow 3s ease-in-out infinite alternate;
}
@keyframes hp-holmes { 0% { transform: rotate(-2deg) translateX(0) } 25% { transform: rotate(3deg) translateX(2px) } 50% { transform: rotate(-4deg) translateX(-2px) } 75% { transform: rotate(2deg) translateX(1px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes hp-pig { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(15deg) scale(1.1) } 100% { transform: rotate(-10deg) scale(0.95) } }
@keyframes hp-watson { 0% { transform: rotate(0deg) translateX(0) } 30% { transform: rotate(-8deg) translateX(-5px) } 70% { transform: rotate(10deg) translateX(3px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes hp-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hp-hook { 0% { transform: rotate(10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(15deg) } }
@keyframes hp-shadow { 0% { transform: scaleX(1) opacity(0.2) } 50% { transform: scaleX(1.2) opacity(0.3) } 100% { transform: scaleX(0.8) opacity(0.15) } }

.scn-hopkins-on-carey-assaults {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 70% 60%, #c08040 0%, transparent 60%);
}
.scn-hopkins-on-carey-assaults .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3222 0%, #1a1008 100%);
  animation: hca-room 20s ease-in-out infinite alternate;
}
.scn-hopkins-on-carey-assaults .window {
  position: absolute; top: 10%; left: 70%; width: 80px; height: 120px;
  background: radial-gradient(circle at 50% 30%, #2a4a6a 0%, #0a0a2a 70%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: hca-window 10s ease-in-out infinite alternate;
}
.scn-hopkins-on-carey-assaults .lamp {
  position: absolute; top: 20%; left: 30%; width: 16px; height: 24px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 8px #f0c060, 0 0 80px 16px rgba(240,192,96,.3);
  animation: hca-lamp 3s ease-in-out infinite alternate;
}
.scn-hopkins-on-carey-assaults .table {
  position: absolute; bottom: 20%; left: 25%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: hca-table 8s ease-in-out infinite alternate;
}
.scn-hopkins-on-carey-assaults .vicar {
  position: absolute; bottom: 22%; left: 15%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hca-recoil 4s ease-in-out infinite;
}
.scn-hopkins-on-carey-assaults .assailant {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 68px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hca-assault 2s ease-in-out infinite;
}
.scn-hopkins-on-carey-assaults .shadow-tremor {
  position: absolute; bottom: 18%; left: 60%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  filter: blur(8px); animation: hca-shadow 3s ease-in-out infinite alternate;
}
@keyframes hca-room {
  0% { opacity: .85; filter: brightness(1); }
  50% { opacity: .95; filter: brightness(1.05); }
  100% { opacity: .85; filter: brightness(1); }
}
@keyframes hca-window {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
  50% { box-shadow: inset 0 0 30px rgba(0,0,0,.9); }
  100% { box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
}
@keyframes hca-lamp {
  0% { opacity: .7; box-shadow: 0 0 30px 6px #f0c060; }
  50% { opacity: 1; box-shadow: 0 0 50px 12px #f0c060; }
  100% { opacity: .8; box-shadow: 0 0 35px 8px #f0c060; }
}
@keyframes hca-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hca-recoil {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-6deg); }
  50% { transform: translateX(-14px) rotate(-10deg); }
  75% { transform: translateX(-8px) rotate(-6deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hca-assault {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  20% { transform: translateX(10px) rotate(5deg) scale(1.05); }
  40% { transform: translateX(0) rotate(-3deg) scale(1); }
  60% { transform: translateX(14px) rotate(7deg) scale(1.08); }
  80% { transform: translateX(0) rotate(-2deg) scale(1); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes hca-shadow {
  0% { transform: scale(1) translateY(0); opacity: .5; }
  50% { transform: scale(1.05) translateY(-3px); opacity: .7; }
  100% { transform: scale(1) translateY(0); opacity: .5; }
}

.scn-hopkins-describes-cabin {
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 50%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 40%, #b08850 0%, transparent 70%);
}
.scn-hopkins-describes-cabin .cabin-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #3a2510 0%, #5a3a1a 50%, #3a2510 100%);
  animation: ndc-wall 30s ease-in-out infinite alternate;
}
.scn-hopkins-describes-cabin .cabin-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 20% 20% 0 0; animation: ndc-floor 25s ease-in-out infinite alternate;
}
.scn-hopkins-describes-cabin .window {
  position: absolute; top: 15%; left: 65%; width: 70px; height: 90px;
  background: radial-gradient(circle at 50% 40%, #c8a870 0%, #6a4a2a 80%);
  border-radius: 4px; box-shadow: inset 0 0 15px rgba(0,0,0,.7);
  animation: ndc-window 12s ease-in-out infinite alternate;
}
.scn-hopkins-describes-cabin .cot {
  position: absolute; bottom: 25%; left: 20%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0c 100%);
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ndc-cot 7s ease-in-out infinite alternate;
}
.scn-hopkins-describes-cabin .lantern {
  position: absolute; top: 30%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(circle, #f0d060 0%, #b08830 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 6px #f0d060, 0 0 60px 12px rgba(240,208,96,.3);
  animation: ndc-lantern 4s ease-in-out infinite alternate;
}
.scn-hopkins-describes-cabin .shadow {
  position: absolute; bottom: 26%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%);
  filter: blur(6px); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: ndc-shadow 6s ease-in-out infinite alternate;
}
.scn-hopkins-describes-cabin .crate {
  position: absolute; bottom: 22%; left: 70%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 3px; box-shadow: 2px 2px 6px rgba(0,0,0,.5);
  animation: ndc-crate 14s ease-in-out infinite alternate;
}
@keyframes ndc-wall {
  0% { opacity: .85; background-position: 0% 0%; }
  50% { opacity: .95; background-position: 2% 0%; }
  100% { opacity: .85; background-position: 0% 0%; }
}
@keyframes ndc-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ndc-window {
  0% { opacity: .7; box-shadow: inset 0 0 15px rgba(0,0,0,.7); }
  50% { opacity: 1; box-shadow: inset 0 0 25px rgba(0,0,0,.5); }
  100% { opacity: .8; box-shadow: inset 0 0 15px rgba(0,0,0,.7); }
}
@keyframes ndc-cot {
  0% { transform: translateY(0) skewX(0deg); }
  50% { transform: translateY(-2px) skewX(1deg); }
  100% { transform: translateY(0) skewX(0deg); }
}
@keyframes ndc-lantern {
  0% { opacity: .6; box-shadow: 0 0 20px 4px #f0d060; transform: rotate(-2deg); }
  50% { opacity: 1; box-shadow: 0 0 40px 10px #f0d060; transform: rotate(2deg); }
  100% { opacity: .7; box-shadow: 0 0 25px 5px #f0d060; transform: rotate(-1deg); }
}
@keyframes ndc-shadow {
  0% { transform: translateX(0) scale(1); opacity: .4; }
  50% { transform: translateX(4px) scale(1.03); opacity: .6; }
  100% { transform: translateX(0) scale(1); opacity: .4; }
}
@keyframes ndc-crate {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

.scn-hopkins-on-shadow {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3018 50%, #1a0e06 100%),
              radial-gradient(ellipse at 60% 30%, #c8a870 0%, transparent 60%);
}
.scn-hopkins-on-shadow .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2510 0%, #1a0e06 100%);
  animation: hs-wall 15s ease-in-out infinite alternate;
}
.scn-hopkins-on-shadow .window {
  position: absolute; top: 10%; left: 50%; width: 90px; height: 110px;
  background: radial-gradient(circle at 50% 40%, #f0d880 0%, #b08830 80%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,.9);
  animation: hs-window 8s ease-in-out infinite alternate;
}
.scn-hopkins-on-shadow .light-beam {
  position: absolute; top: 10%; left: 50%; width: 200px; height: 300px;
  background: linear-gradient(135deg, rgba(240,216,128,.3) 0%, transparent 100%);
  transform: translateX(-50%) rotate(-10deg);
  animation: hs-beam 12s ease-in-out infinite alternate;
}
.scn-hopkins-on-shadow .door {
  position: absolute; bottom: 10%; left: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: hs-door 6s ease-in-out infinite alternate;
}
.scn-hopkins-on-shadow .shadow-head {
  position: absolute; top: 20%; left: 40%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%);
  filter: blur(4px); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hs-head 5s ease-in-out infinite alternate;
}
.scn-hopkins-on-shadow .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 30% 30% 0 0;
  animation: hs-floor 20s ease-in-out infinite alternate;
}
@keyframes hs-wall {
  0% { opacity: .8; }
  50% { opacity: .9; }
  100% { opacity: .8; }
}
@keyframes hs-window {
  0% { opacity: .6; box-shadow: inset 0 0 20px rgba(0,0,0,.9); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
  100% { opacity: .7; box-shadow: inset 0 0 20px rgba(0,0,0,.9); }
}
@keyframes hs-beam {
  0% { opacity: .3; transform: translateX(-50%) rotate(-10deg) scale(1); }
  50% { opacity: .6; transform: translateX(-50%) rotate(-8deg) scale(1.05); }
  100% { opacity: .3; transform: translateX(-50%) rotate(-10deg) scale(1); }
}
@keyframes hs-door {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes hs-head {
  0% { transform: translateX(0) rotate(0deg) scale(1); opacity: .4; }
  30% { transform: translateX(6px) rotate(5deg) scale(1.05); opacity: .6; }
  60% { transform: translateX(-2px) rotate(-3deg) scale(1); opacity: .5; }
  100% { transform: translateX(0) rotate(0deg) scale(1); opacity: .4; }
}
@keyframes hs-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

.scn-hopkins-on-murder-night {
  background: linear-gradient(180deg, #0a0602 0%, #1a0e06 50%, #0a0602 100%),
              radial-gradient(ellipse at 30% 50%, #c08030 0%, transparent 80%);
}
.scn-hopkins-on-murder-night .hut-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%);
  animation: hmn-wall 30s ease-in-out infinite alternate;
}
.scn-hopkins-on-murder-night .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%);
  border-radius: 30% 30% 0 0;
  animation: hmn-floor 20s ease-in-out infinite alternate;
}
.scn-hopkins-on-murder-night .bed {
  position: absolute; bottom: 20%; left: 15%; width: 70px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,.8);
  animation: hmn-bed 10s ease-in-out infinite alternate;
}
.scn-hopkins-on-murder-night .lantern {
  position: absolute; top: 30%; left: 25%; width: 14px; height: 22px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 50px 10px #f0c060, 0 0 100px 20px rgba(240,192,96,.4);
  animation: hmn-lantern 3s ease-in-out infinite alternate;
}
.scn-hopkins-on-murder-night .bottle {
  position: absolute; bottom: 22%; left: 55%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: hmn-bottle 4s ease-in-out infinite alternate;
}
.scn-hopkins-on-murder-night .figure-carey {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hmn-stagger 2s ease-in-out infinite;
}
.scn-hopkins-on-murder-night .shadow-monster {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 90px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%);
  filter: blur(10px);
  animation: hmn-monster 5s ease-in-out infinite alternate;
}
@keyframes hmn-wall {
  0% { opacity: .7; filter: brightness(.8); }
  50% { opacity: .85; filter: brightness(1); }
  100% { opacity: .7; filter: brightness(.8); }
}
@keyframes hmn-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes hmn-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hmn-lantern {
  0% { opacity: .4; box-shadow: 0 0 30px 6px #f0c060; }
  50% { opacity: .8; box-shadow: 0 0 60px 14px #f0c060; }
  100% { opacity: .5; box-shadow: 0 0 35px 8px #f0c060; }
}
@keyframes hmn-bottle {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hmn-stagger {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  15% { transform: translateX(6px) rotate(4deg) scale(1.02); }
  30% { transform: translateX(-2px) rotate(-2deg) scale(1); }
  45% { transform: translateX(10px) rotate(6deg) scale(1.04); }
  60% { transform: translateX(0) rotate(-1deg) scale(1); }
  75% { transform: translateX(8px) rotate(3deg) scale(1.02); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes hmn-monster {
  0% { transform: scale(1) translateY(0); opacity: .3; }
  50% { transform: scale(1.08) translateY(-5px); opacity: .6; }
  100% { transform: scale(1) translateY(0); opacity: .3; }
}

/* ===== search-prisoner ===== */
.scn-search-prisoner {
  background:
    linear-gradient(180deg, #4a4a6a 0%, #2e2e4e 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 80%, #6a6a8a 0%, transparent 70%);
}
.scn-search-prisoner .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2a2a3a 0%, #3a3a4a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-search-prisoner .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 80%);
}
.scn-search-prisoner .table {
  position: absolute; bottom: 30%; left: 50%; width: 200px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-search-prisoner .spotlight {
  position: absolute; top: 0; left: 30%; width: 40%; height: 90%;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,255,255,.25) 0%, transparent 70%);
  animation: sp-spot 8s ease-in-out infinite alternate;
}
.scn-search-prisoner .figure-prisoner {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sp-prisoner 6s ease-in-out infinite;
}
.scn-search-prisoner .figure-officer {
  position: absolute; bottom: 30%; left: 55%; width: 45px; height: 75px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sp-officer 6s ease-in-out infinite alternate;
}
.scn-search-prisoner .knife {
  position: absolute; bottom: 34%; left: 48%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: sp-knife 4s ease-in-out infinite;
}
.scn-search-prisoner .bloodstain {
  position: absolute; bottom: 34%; left: 50%; width: 18px; height: 6px;
  background: radial-gradient(ellipse at 50% 50%, #5e2a2a 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(94,42,42,.4);
  animation: sp-blood 5s ease-in-out infinite alternate;
}
@keyframes sp-spot {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .8; transform: scale(0.95); }
}
@keyframes sp-prisoner {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(-3px) translateY(2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes sp-officer {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes sp-knife {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(25deg); }
  100% { transform: rotate(20deg); }
}
@keyframes sp-blood {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: .7; transform: scale(0.9); }
}

/* ===== holmes-promises-explanation ===== */
.scn-holmes-promises-explanation {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, transparent 60%);
}
.scn-holmes-promises-explanation .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
}
.scn-holmes-promises-explanation .fireplace {
  position: absolute; bottom: 20%; left: 10%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px rgba(255,100,0,.15);
}
.scn-holmes-promises-explanation .fireglow {
  position: absolute; bottom: 28%; left: 14%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #ff6030 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,100,30,.5), 0 0 60px 20px rgba(255,80,20,.2);
  animation: hpe-fire 3s ease-in-out infinite alternate;
}
.scn-holmes-promises-explanation .armchair {
  position: absolute; bottom: 20%; right: 15%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-holmes-promises-explanation .holmes-silhouette {
  position: absolute; bottom: 20%; right: 22%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0a0500 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hpe-holmes 7s ease-in-out infinite;
}
.scn-holmes-promises-explanation .clock {
  position: absolute; bottom: 60%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,.5);
  animation: hpe-clock 10s linear infinite;
}
.scn-holmes-promises-explanation .shadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.4) 100%);
  animation: hpe-shadow 8s ease-in-out infinite alternate;
}
@keyframes hpe-fire {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1) scaleX(0.95); }
  100% { opacity: .8; transform: scaleY(0.95); }
}
@keyframes hpe-holmes {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hpe-clock {
  0% { transform: rotate(0); }
  100% { transform: rotate(360deg); }
}
@keyframes hpe-shadow {
  0% { opacity: .5; }
  50% { opacity: .8; }
  100% { opacity: .6; }
}

/* ===== invitation-to-morning ===== */
.scn-invitation-to-morning {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #3a2a1a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-invitation-to-morning .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(0deg, #2a1a0a 0%, #4a3a2a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-invitation-to-morning .candle {
  position: absolute; bottom: 38%; left: 30%; width: 14px; height: 50px;
  background: linear-gradient(180deg, #e0c080 0%, #a08040 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-invitation-to-morning .flame {
  position: absolute; bottom: 72%; left: 30%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #ff8030 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(255,128,30,.6), 0 0 32px 12px rgba(255,128,30,.2);
  animation: itm-flame 2s ease-in-out infinite alternate;
}
.scn-invitation-to-morning .letter {
  position: absolute; bottom: 36%; left: 45%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0b080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  transform: rotate(-3deg);
  animation: itm-letter 6s ease-in-out infinite alternate;
}
.scn-invitation-to-morning .inkwell {
  position: absolute; bottom: 36%; left: 60%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-invitation-to-morning .quill {
  position: absolute; bottom: 36%; left: 63%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 2px 2px 0 0;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: itm-quill 8s ease-in-out infinite;
}
.scn-invitation-to-morning .clock-small {
  position: absolute; bottom: 50%; right: 10%; width: 20px; height: 20px;
  background: radial-gradient(circle, #a08040 0%, #604020 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,.4);
  animation: itm-smallclock 12s linear infinite;
}
@keyframes itm-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: .8; }
  50% { transform: scaleY(1.15) scaleX(0.9); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(1.05); opacity: .7; }
}
@keyframes itm-letter {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes itm-quill {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(18deg); }
  100% { transform: rotate(15deg); }
}
@keyframes itm-smallclock {
  0% { transform: rotate(0); }
  100% { transform: rotate(360deg); }
}

/* ===== next-day-prisoner-info ===== */
.scn-next-day-prisoner-info {
  background:
    linear-gradient(180deg, #c8b898 0%, #a88868 40%, #806050 100%),
    radial-gradient(ellipse at 50% 0%, #f0e0d0 0%, transparent 60%);
}
.scn-next-day-prisoner-info .desk-wide {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #604020 0%, #a08060 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.3);
}
.scn-next-day-prisoner-info .window-light {
  position: absolute; top: 0; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, rgba(255,255,200,.15) 0%, transparent 100%);
  animation: np-light 6s ease-in-out infinite alternate;
}
.scn-next-day-prisoner-info .folder {
  position: absolute; bottom: 40%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  transform: rotate(-2deg);
  animation: np-folder 10s ease-in-out infinite alternate;
}
.scn-next-day-prisoner-info .document {
  position: absolute; bottom: 44%; left: 35%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  transform: rotate(3deg);
}
.scn-next-day-prisoner-info .magnifier {
  position: absolute; bottom: 40%; right: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c0b898 0%, #a09078 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  transform: rotate(10deg);
  animation: np-magnifier 12s ease-in-out infinite;
}
.scn-next-day-prisoner-info .sculpture {
  position: absolute; bottom: 35%; left: 18%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 60%, #a09080 0%, #706050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: np-sculpture 14s ease-in-out infinite alternate;
}
.scn-next-day-prisoner-info .dust-mote-1 {
  position: absolute; top: 20%; left: 10%; width: 6px; height: 6px;
  background: rgba(255,255,200,.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: np-dust 20s linear infinite;
  animation-delay: 0s;
}
.scn-next-day-prisoner-info .dust-mote-2 {
  position: absolute; top: 30%; left: 70%; width: 4px; height: 4px;
  background: rgba(255,255,200,.2);
  border-radius: 50%;
  filter: blur(1px);
  animation: np-dust 25s linear infinite reverse;
  animation-delay: -5s;
}
@keyframes np-light {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes np-folder {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes np-magnifier {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(10deg); }
}
@keyframes np-sculpture {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-2px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes np-dust {
  0% { transform: translate(0, 0) scale(1); opacity: .2; }
  25% { transform: translate(20px, -30px) scale(1.5); opacity: .5; }
  50% { transform: translate(40px, -60px) scale(1); opacity: .3; }
  75% { transform: translate(20px, -40px) scale(1.2); opacity: .4; }
  100% { transform: translate(0, 0) scale(1); opacity: .2; }
}

.scn-alarm-raised { background: linear-gradient(180deg, #f4e4c1 0%, #d4b48a 60%, #a0785a 100%), radial-gradient(ellipse at 50% 30%, #ffeac2 0%, transparent 60%); }
.scn-alarm-raised .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #ebd6b0 0%, #c9a87c 100%); animation: ar-wall 12s ease-in-out infinite alternate; }
.scn-alarm-raised .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #8b6f4e 0%, #5a4532 100%); border-top: 2px solid #6a5038; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-alarm-raised .desk { position: absolute; bottom: 32%; left: 25%; width: 50%; height: 12%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: ar-desk 8s ease-in-out infinite; }
.scn-alarm-raised .lamp { position: absolute; bottom: 44%; left: 38%; width: 14px; height: 28px; background: radial-gradient(circle at 50% 0%, #f0c060 0%, #c09050 60%, #6a4020 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.3); animation: ar-lamp 3s ease-in-out infinite alternate; }
.scn-alarm-raised .letter { position: absolute; bottom: 36%; left: 42%; width: 30px; height: 20px; background: #faf0d8; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform: rotate(5deg); animation: ar-letter 6s ease-in-out infinite; }
.scn-alarm-raised .figure { position: absolute; bottom: 28%; left: 35%; width: 20px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-fig 4s ease-in-out infinite; }
.scn-alarm-raised .clock { position: absolute; bottom: 60%; right: 20%; width: 30px; height: 30px; background: radial-gradient(circle, #f0e8d0 0%, #a08060 100%); border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.3); animation: ar-clock 2s steps(2) infinite; }
.scn-alarm-raised .shadow { position: absolute; bottom: 28%; left: 30%; width: 40px; height: 10px; background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(4px); animation: ar-shadow 4s ease-in-out infinite; }
@keyframes ar-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ar-desk { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ar-lamp { 0% { opacity: 0.8; box-shadow: 0 0 15px 4px #ffd080, 0 0 30px 8px rgba(255,208,128,0.2); } 100% { opacity: 1; box-shadow: 0 0 30px 8px #ffd080, 0 0 60px 16px rgba(255,208,128,0.4); } }
@keyframes ar-letter { 0%, 100% { transform: rotate(5deg); } 50% { transform: rotate(8deg); } }
@keyframes ar-fig { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ar-clock { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes ar-shadow { 0%, 100% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.2); } }

.scn-maid's-observation { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 100%), radial-gradient(ellipse at 50% 100%, #3a3a6e 0%, transparent 70%); }
.scn-maid's-observation .indoor-wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 100%); animation: mo-wall 20s ease-in-out infinite alternate; }
.scn-maid's-observation .window-frame { position: absolute; bottom: 20%; left: 30%; right: 30%; top: 10%; border: 6px solid #4a3a2a; background: transparent; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-maid's-observation .curtain-left { position: absolute; bottom: 20%; left: 28%; top: 10%; width: 8%; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); border-radius: 0 20px 20px 0; box-shadow: 2px 0 6px rgba(0,0,0,0.3); animation: mo-curtain 15s ease-in-out infinite alternate; }
.scn-maid's-observation .curtain-right { position: absolute; bottom: 20%; right: 28%; top: 10%; width: 8%; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); border-radius: 20px 0 0 20px; box-shadow: -2px 0 6px rgba(0,0,0,0.3); animation: mo-curtain 15s ease-in-out infinite alternate-reverse; }
.scn-maid's-observation .moon { position: absolute; bottom: 55%; left: 45%; width: 20px; height: 20px; background: radial-gradient(circle, #f0f0ff 0%, #c0c0e0 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,200,255,0.3); animation: mo-moon 10s ease-in-out infinite alternate; }
.scn-maid's-observation .fig1 { position: absolute; bottom: 18%; left: 32%; width: 8px; height: 18px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mo-fig 6s ease-in-out infinite; }
.scn-maid's-observation .fig2 { position: absolute; bottom: 18%; left: 40%; width: 8px; height: 18px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mo-fig 6s ease-in-out infinite 0.5s; }
.scn-maid's-observation .fig3 { position: absolute; bottom: 18%; left: 48%; width: 8px; height: 18px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mo-fig 6s ease-in-out infinite 1s; }
.scn-maid's-observation .stars { position: absolute; top: 5%; left: 0; right: 0; bottom: 60%; background: radial-gradient(circle, #fff 1px, transparent 1px) repeat; background-size: 20px 20px; opacity: 0.6; animation: mo-stars 30s linear infinite; }
@keyframes mo-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mo-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); } }
@keyframes mo-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes mo-fig { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes mo-stars { 0% { background-position: 0 0; } 100% { background-position: 20px 20px; } }

.scn-maid-leads-lady-out { background: linear-gradient(180deg, #f0e0c0 0%, #d4b080 50%, #a07850 100%), radial-gradient(ellipse at 50% 40%, #ffeac0 0%, transparent 60%); }
.scn-maid-leads-lady-out .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #ebd6b0 0%, #c9a87c 100%); animation: mll-wall 20s ease-in-out infinite alternate; }
.scn-maid-leads-lady-out .door-frame { position: absolute; bottom: 30%; left: 35%; right: 35%; top: 10%; border: 8px solid #5a4028; background: transparent; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); }
.scn-maid-leads-lady-out .door { position: absolute; bottom: 30%; left: 35%; top: 10%; width: 30%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-right: 4px solid #4a2a1a; box-shadow: 4px 0 8px rgba(0,0,0,0.3); animation: mll-door 10s ease-in-out infinite alternate; }
.scn-maid-leads-lady-out .figure-old { position: absolute; bottom: 28%; left: 38%; width: 18px; height: 38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mll-fig-old 6s ease-in-out infinite; }
.scn-maid-leads-lady-out .figure-lady { position: absolute; bottom: 28%; left: 44%; width: 16px; height: 34px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mll-fig-lady 6s ease-in-out infinite; }
.scn-maid-leads-lady-out .lamp { position: absolute; bottom: 42%; left: 30%; width: 12px; height: 20px; background: radial-gradient(circle at 50% 0%, #f0c060 0%, #c09050 80%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.3); animation: mll-lamp 3s ease-in-out infinite alternate; }
.scn-maid-leads-lady-out .rug { position: absolute; bottom: 28%; left: 30%; right: 30%; height: 6%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.2); animation: mll-rug 8s ease-in-out infinite; }
@keyframes mll-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mll-door { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }
@keyframes mll-fig-old { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes mll-fig-lady { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes mll-lamp { 0% { opacity: 0.85; box-shadow: 0 0 15px 4px #ffd080, 0 0 30px 8px rgba(255,208,128,0.2); } 100% { opacity: 1; box-shadow: 0 0 30px 8px #ffd080, 0 0 60px 16px rgba(255,208,128,0.4); } }
@keyframes mll-rug { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }

.scn-dining-room-scene { background: linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 30%, #1a0a00 100%), radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, transparent 60%); }
.scn-dining-room-scene .wall-panel { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.6); animation: dr-wall 20s ease-in-out infinite alternate; }
.scn-dining-room-scene .ceiling { position: absolute; top: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-bottom: 2px solid #4a3a2a; box-shadow: 0 4px 12px rgba(0,0,0,0.4); }
.scn-dining-room-scene .table { position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20px 20px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); animation: dr-table 10s ease-in-out infinite; }
.scn-dining-room-scene .candelabra { position: absolute; bottom: 50%; left: 45%; width: 10px; height: 30px; background: linear-gradient(180deg, #c0a060 0%, #806040 100%); border-radius: 4px; box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.3); animation: dr-candelabra 3s ease-in-out infinite alternate; }
.scn-dining-room-scene .chairs { position: absolute; bottom: 28%; left: 15%; right: 15%; height: 8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: dr-chairs 12s ease-in-out infinite alternate; }
.scn-dining-room-scene .deer-head { position: absolute; top: 28%; left: 25%; width: 40px; height: 30px; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: dr-deer 15s ease-in-out infinite alternate; }
.scn-dining-room-scene .weapon { position: absolute; top: 30%; right: 20%; width: 4px; height: 40px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); transform: rotate(20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: dr-weapon 20s ease-in-out infinite alternate; }
.scn-dining-room-scene .shadow { position: absolute; bottom: 28%; left: 30%; width: 80px; height: 20px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(6px); transform: skewX(-10deg); animation: dr-shadow 8s ease-in-out infinite alternate; }
@keyframes dr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dr-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes dr-candelabra { 0% { opacity: 0.8; box-shadow: 0 0 15px 4px #ffd080, 0 0 30px 8px rgba(255,208,128,0.2); } 100% { opacity: 1; box-shadow: 0 0 30px 8px #ffd080, 0 0 60px 16px rgba(255,208,128,0.4); } }
@keyframes dr-chairs { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dr-deer { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes dr-weapon { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(20deg); } }
@keyframes dr-shadow { 0% { opacity: 0.2; transform: skewX(-10deg); } 50% { opacity: 0.4; transform: skewX(-8deg); } 100% { opacity: 0.2; transform: skewX(-10deg); } }

/* Scene: burgling-begins */
.scn-burgling-begins {
  background: 
    linear-gradient(180deg, #0b0e1a 0%, #1a1e2e 40%, #2a2f44 70%, #3a3f54 100%),
    radial-gradient(ellipse at 80% 20%, #2a3040 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-burgling-begins .streets {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1e2e 0%, #0f121a 100%);
  border-radius: 20% 30% 0 0 / 60% 40% 0 0;
  animation: bg-streets 12s ease-in-out infinite alternate;
}
.scn-burgling-begins .sky-night {
  position: absolute;
  top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #0b0e1a 0%, #1a1e2e 100%);
  animation: bg-sky 20s ease-in-out infinite alternate;
}
.scn-burgling-begins .lamppost {
  position: absolute;
  bottom: 30%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 2px;
}
.scn-burgling-begins .lamp1 { left: 20%; animation: bg-lamp1 5s ease-in-out infinite; }
.scn-burgling-begins .lamp2 { left: 70%; animation: bg-lamp2 5s ease-in-out infinite 2.5s; }
.scn-burgling-begins .lamp1::after, .scn-burgling-begins .lamp2::after {
  content: ''; position: absolute; top: -8px; left: -6px; width: 20px; height: 14px;
  background: radial-gradient(circle, #ffe080 0%, #b08040 70%);
  border-radius: 50%; box-shadow: 0 0 20px 8px #b08040, 0 0 40px 16px rgba(176,128,64,0.3);
}
.scn-burgling-begins .cab {
  position: absolute;
  bottom: 27%; left: 10%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform: rotate(-2deg);
  animation: bg-cab 15s ease-in-out infinite;
}
.scn-burgling-begins .figure {
  position: absolute;
  bottom: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #111520 0%, #0a0c12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: bg-fig 6s ease-in-out infinite;
}
.scn-burgling-begins .fig1 { left: 30%; animation-delay: 0s; }
.scn-burgling-begins .fig2 { left: 45%; animation-delay: 3s; transform: scaleX(-1); }
.scn-burgling-begins .shadow {
  position: absolute;
  bottom: 25%; left: 25%; width: 60px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: bg-shadow 4s ease-in-out infinite alternate;
}
@keyframes bg-streets { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bg-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bg-lamp1 { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes bg-lamp2 { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes bg-cab { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(10px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bg-fig { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes bg-shadow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(0.9); opacity: 0.5; } }

/* Scene: entering-the-house */
.scn-entering-the-house {
  background: 
    linear-gradient(180deg, #0c0e18 0%, #1a1d2e 40%, #2a2f44 70%, #3a3f54 100%),
    radial-gradient(ellipse at 50% 100%, #1a1d2e 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-entering-the-house .wall-bricks {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(0deg, #1a1d2e 0px, #1a1d2e 20px, #0c0e18 20px, #0c0e18 22px),
              repeating-linear-gradient(90deg, #1a1d2e 0px, #1a1d2e 80px, #0c0e18 80px, #0c0e18 82px);
  opacity: 0.3;
  animation: eh-wall 20s linear infinite;
}
.scn-entering-the-house .porch-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-conic-gradient(#2a2f44 0% 25%, #1a1d2e 0% 50%) 0 0 / 40px 40px;
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: eh-tiles 15s ease-in-out infinite alternate;
}
.scn-entering-the-house .window-win {
  position: absolute; top: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #0c0e18 0%, #1a1d2e 100%);
  border: 2px solid #2a2f44; border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(255,255,255,0.05);
}
.scn-entering-the-house .w1 { left: 15%; animation: eh-window 4s ease-in-out infinite; }
.scn-entering-the-house .w2 { left: 40%; animation: eh-window 4s ease-in-out infinite 1s; }
.scn-entering-the-house .w3 { left: 65%; animation: eh-window 4s ease-in-out infinite 2s; }
.scn-entering-the-house .window-win::after {
  content: ''; position: absolute; top: 10%; left: 10%; right: 10%; bottom: 10%;
  background: repeating-linear-gradient(90deg, transparent, transparent 8px, #2a2f44 8px, #2a2f44 10px);
  opacity: 0.3;
}
.scn-entering-the-house .door-main {
  position: absolute; bottom: 10%; left: 45%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a2f44 0%, #1a1d2e 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 5% 5%;
  border: 3px solid #0c0e18;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
  animation: eh-door 8s ease-in-out infinite;
}
.scn-entering-the-house .door-main::before {
  content: ''; position: absolute; top: 20%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(circle, #1a1d2e 0%, #0c0e18 70%);
  border-radius: 50%;
}
.scn-entering-the-house .figure-sil1,
.scn-entering-the-house .figure-sil2 {
  position: absolute; bottom: 15%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #0a0c12 0%, #05060a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.scn-entering-the-house .figure-sil1 { left: 35%; animation: eh-fig1 5s ease-in-out infinite; }
.scn-entering-the-house .figure-sil2 { left: 55%; animation: eh-fig2 5s ease-in-out infinite 2.5s; }
.scn-entering-the-house .shadow-trees {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 20% 30%, rgba(0,0,0,0.4) 0%, transparent 50%);
  animation: eh-trees 10s ease-in-out infinite alternate;
}
@keyframes eh-wall { 0% { background-position: 0 0; } 100% { background-position: 80px 20px; } }
@keyframes eh-tiles { 0% { background-position: 0 0; } 50% { background-position: 20px 20px; } 100% { background-position: 0 0; } }
@keyframes eh-window { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes eh-door { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes eh-fig1 { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(1px) rotate(2deg); } 70% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes eh-fig2 { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-1px) rotate(-2deg); } 70% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes eh-trees { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* Scene: in-the-study */
.scn-in-the-study {
  background: 
    linear-gradient(180deg, #1a0e08 0%, #2a1a10 30%, #3a2418 60%, #2a1a10 100%),
    radial-gradient(ellipse at 30% 70%, #4a3020 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-in-the-study .fireplace {
  position: absolute; bottom: 5%; left: 35%; width: 120px; height: 140px;
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px #3a2418;
}
.scn-in-the-study .fire-glow {
  position: absolute; bottom: 15%; left: 40%; width: 80px; height: 100px;
  background: radial-gradient(ellipse, #ff6030 0%, #c04020 40%, #802010 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: is-fire 3s ease-in-out infinite alternate;
}
.scn-in-the-study .smoke {
  position: absolute; bottom: 60%; left: 38%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(80,60,40,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: is-smoke 8s ease-in-out infinite;
}
.scn-in-the-study .desk {
  position: absolute; bottom: 10%; left: 10%; width: 150px; height: 60px;
  background: linear-gradient(180deg, #3a2418 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: is-desk 10s ease-in-out infinite;
}
.scn-in-the-study .lampshade {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 18px;
  background: radial-gradient(ellipse, #ffe080 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,224,128,0.3);
  animation: is-lamp 5s ease-in-out infinite alternate;
}
.scn-in-the-study .curtain-left,
.scn-in-the-study .curtain-right {
  position: absolute; top: 0; width: 60px; height: 100%;
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a10 100%);
  border-radius: 0% 20% 20% 0% / 0% 30% 30% 0%;
}
.scn-in-the-study .curtain-left { left: 0; transform: skewX(5deg); animation: is-curtain 6s ease-in-out infinite; }
.scn-in-the-study .curtain-right { right: 0; transform: skewX(-5deg); animation: is-curtain 6s ease-in-out infinite 3s; }
.scn-in-the-study .figure-back {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a0e08 0%, #0f0804 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: is-fig 7s ease-in-out infinite;
}
.scn-in-the-study .papers {
  position: absolute; bottom: 12%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #e0c090 0%, #c0a070 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(10deg);
  animation: is-papers 4s ease-in-out infinite alternate;
}
@keyframes is-fire { 0% { transform: scale(1) rotate(0deg); opacity: 0.9; } 50% { transform: scale(1.1) rotate(3deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-2deg); opacity: 0.85; } }
@keyframes is-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(0) scale(1); opacity: 0.4; } }
@keyframes is-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes is-lamp { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes is-curtain { 0% { transform: skewX(5deg); } 50% { transform: skewX(8deg); } 100% { transform: skewX(5deg); } }
@keyframes is-fig { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 70% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes is-papers { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(8deg) translateY(0); } }

/* Scene: holmes-opens-safe */
.scn-holmes-opens-safe {
  background: 
    linear-gradient(180deg, #1a0e08 0%, #2a1a10 40%, #3a2418 70%, #2a1a10 100%),
    radial-gradient(ellipse at 60% 50%, #4a3020 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-holmes-opens-safe .safe-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(0deg, #2a1a10 0px, #2a1a10 10px, #1a0e08 10px, #1a0e08 12px);
  opacity: 0.3;
  animation: ho-wall 15s linear infinite;
}
.scn-holmes-opens-safe .safe-body {
  position: absolute; bottom: 15%; left: 35%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.8), inset 0 0 20px rgba(0,0,0,0.5);
  animation: ho-safe 10s ease-in-out infinite;
}
.scn-holmes-opens-safe .safe-dial {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #b0a090 0%, #807060 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6), inset 0 0 4px #c0b0a0;
  animation: ho-dial 4s ease-in-out infinite;
}
.scn-holmes-opens-safe .safe-dial::after {
  content: ''; position: absolute; top: 50%; left: 50%; width: 12px; height: 2px; background: #1a0e08; transform: translate(-50%, -50%);
}
.scn-holmes-opens-safe .fire-glow2 {
  position: absolute; bottom: 10%; left: 20%; width: 70px; height: 80px;
  background: radial-gradient(ellipse, #ff6030 0%, #c04020 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ho-fire 3s ease-in-out infinite alternate;
}
.scn-holmes-opens-safe .holmes-sil {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #0a0604 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ho-holmes 5s ease-in-out infinite;
}
.scn-holmes-opens-safe .door-creak {
  position: absolute; bottom: 10%; left: 55%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2418 0%, #2a1a10 100%);
  border-radius: 0% 10% 10% 0% / 0% 20% 20% 0%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  transform-origin: left bottom;
  animation: ho-door 8s ease-in-out infinite;
}
.scn-holmes-opens-safe .shadow-move {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: ho-shadow 6s ease-in-out infinite alternate;
}
.scn-holmes-opens-safe .carpet-edge {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #3a2418 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  animation: ho-carpet 12s ease-in-out infinite;
}
@keyframes ho-wall { 0% { background-position: 0 0; } 100% { background-position: 0 12px; } }
@keyframes ho-safe { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ho-dial { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(45deg); } 70% { transform: translateX(-50%) rotate(-20deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ho-fire { 0% { transform: scale(1) rotate(0deg); opacity: 0.9; } 50% { transform: scale(1.15) rotate(5deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-3deg); opacity: 0.8; } }
@keyframes ho-holmes { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 70% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ho-door { 0% { transform: rotate(0deg); } 30% { transform: rotate(-10deg); } 70% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes ho-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.3); } 100% { opacity: 0.4; transform: scaleX(0.9); } }
@keyframes ho-carpet { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* holmes-demands-check */
.scn-holmes-demands-check {
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #e3cdb5 40%, #c9a96e 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,235,200,0.6) 0%, transparent 70%);
}
.scn-holmes-demands-check .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(135deg, #d4b896 0%, #bfa07c 100%);
}
.scn-holmes-demands-check .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #8b7355 0%, #a68b6d 100%);
}
.scn-holmes-demands-check .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at center, #b0d4f1 0%, #87CEEB 60%, transparent 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: hdc-window 20s ease-in-out infinite alternate;
}
.scn-holmes-demands-check .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #5c3d2e 0%, #3a2218 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-holmes-demands-check .holmes-shadow {
  position: absolute; bottom: 22%; left: 28%; width: 12%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.15) 0%, transparent 70%);
  border-radius: 50%; transform: rotate(-10deg);
  animation: hdc-shadow 8s ease-in-out infinite alternate;
}
.scn-holmes-demands-check .duke-shadow {
  position: absolute; bottom: 22%; right: 28%; width: 12%; height: 38%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.2) 0%, transparent 70%);
  border-radius: 50%; transform: rotate(8deg);
  animation: hdc-shadow 10s ease-in-out infinite alternate-reverse;
}
.scn-holmes-demands-check .check {
  position: absolute; bottom: 24%; left: 45%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #fff8e7 0%, #f0e0c0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hdc-check 4s ease-in-out infinite;
}
.scn-holmes-demands-check .inkwell {
  position: absolute; bottom: 26%; left: 40%; width: 4%; height: 6%;
  background: radial-gradient(circle at 30% 20%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-holmes-demands-check .curtain {
  position: absolute; top: 5%; left: 8%; width: 12%; height: 55%;
  background: linear-gradient(90deg, #c9a96e 0%, #b0884a 50%, #c9a96e 100%);
  border-radius: 0 0 30% 0 / 0 0 50% 0;
  animation: hdc-curtain 30s ease-in-out infinite alternate;
}
@keyframes hdc-window { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes hdc-shadow { 0% { transform: rotate(-10deg) scale(1); opacity: 0.5; } 50% { transform: rotate(-8deg) scale(1.05); opacity: 0.7; } 100% { transform: rotate(-12deg) scale(0.95); opacity: 0.4; } }
@keyframes hdc-check { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes hdc-curtain { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(0.95) translateX(2px); } 100% { transform: scaleX(1) translateX(0); } }

/* duke-astonished */
.scn-duke-astonished {
  background:
    linear-gradient(180deg, #eedfd0 0%, #d4b896 50%),
    radial-gradient(ellipse at 50% 70%, rgba(255,220,150,0.3) 0%, transparent 80%);
}
.scn-duke-astonished .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #cfa67a 0%, #b8835a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-duke-astonished .shadow {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(270deg, rgba(0,0,0,0.3) 0%, transparent 80%);
  animation: da-shadow 5s ease-in-out infinite alternate;
}
.scn-duke-astonished .armchair {
  position: absolute; bottom: 20%; right: 20%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #4a2c1b 0%, #2a1508 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 12px 20px rgba(0,0,0,0.5);
}
.scn-duke-astonished .duke-silhouette {
  position: absolute; bottom: 20%; right: 22%; width: 26%; height: 48%;
  background: radial-gradient(ellipse at 50% 100%, #1a0e05 0%, #0d0703 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-figure 7s ease-in-out infinite;
}
.scn-duke-astonished .hand-clutch {
  position: absolute; bottom: 28%; right: 30%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 50%, #2a1a0a 0%, #120b04 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom right;
  animation: da-hand 3s ease-in-out infinite;
}
.scn-duke-astonished .papers {
  position: absolute; bottom: 25%; left: 20%; width: 16%; height: 20%;
  background: linear-gradient(135deg, #f5ead0 0%, #dcc8a0 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(5deg);
  animation: da-papers 4s ease-in-out infinite alternate;
}
.scn-duke-astonished .table-edge {
  position: absolute; bottom: 18%; left: 10%; right: 30%; height: 6%;
  background: linear-gradient(0deg, #6b4a30 0%, #4d301e 100%);
  border-radius: 2px;
}
@keyframes da-shadow { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes da-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes da-hand { 0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.1) rotate(5deg); } 50% { transform: scale(0.9) rotate(-2deg); } 75% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes da-papers { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(3px); } 100% { transform: rotate(6deg) translateX(-2px); } }

/* duke-reaction */
.scn-duke-reaction {
  background:
    linear-gradient(180deg, #f2e6d8 0%, #d9c2a6 50%),
    radial-gradient(ellipse at 40% 30%, rgba(255,220,150,0.4) 0%, transparent 70%);
}
.scn-duke-reaction .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(90deg, #b88b6a 0%, #c79d7a 100%);
}
.scn-duke-reaction .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #7a5b42 0%, #956f52 100%);
}
.scn-duke-reaction .window {
  position: absolute; top: 8%; left: 5%; width: 25%; height: 45%;
  background: radial-gradient(ellipse at center, #c0ddf5 0%, #a0c4eb 60%, transparent 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,0.15);
  animation: dr-window 15s ease-in-out infinite alternate;
}
.scn-duke-reaction .chair {
  position: absolute; bottom: 25%; left: 30%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #3f2517 0%, #1f0f06 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  transform: rotate(-3deg);
}
.scn-duke-reaction .rising-figure {
  position: absolute; bottom: 28%; left: 32%; width: 16%; height: 45%;
  background: radial-gradient(ellipse at 50% 100%, #1a0e07 0%, #0d0602 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dr-rise 6s ease-in-out infinite;
}
.scn-duke-reaction .falling-figure {
  position: absolute; bottom: 20%; left: 32%; width: 16%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #1a0e07 0%, #0d0602 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0;
  animation: dr-fall 6s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-duke-reaction .hands-face {
  position: absolute; bottom: 35%; left: 36%; width: 10%; height: 12%;
  background: radial-gradient(circle at 50% 50%, #2a1a0a 0%, #120b04 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: dr-hands 6s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-duke-reaction .shadow-abyss {
  position: absolute; bottom: 20%; left: 25%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: dr-abyss 8s ease-in-out infinite;
}
@keyframes dr-window { 0% { opacity: 0.6; } 50% { opacity: 0.85; } 100% { opacity: 0.7; } }
@keyframes dr-rise { 0% { transform: translateY(0) scale(1); opacity: 1; } 30% { transform: translateY(-30px) scale(1.1); opacity: 0.8; } 60% { transform: translateY(-50px) scale(1.2); opacity: 0.6; } 100% { transform: translateY(0) scale(1); opacity: 0; } }
@keyframes dr-fall { 0% { transform: translateY(-60px) scale(1.2); opacity: 0.6; } 30% { transform: translateY(-20px) scale(1.1); opacity: 0.8; } 60% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(20px) scale(0.9); opacity: 0; } }
@keyframes dr-hands { 0% { transform: rotate(10deg) scale(1); opacity: 0; } 20% { transform: rotate(0deg) scale(1.2); opacity: 0.8; } 50% { transform: rotate(-5deg) scale(1.3); opacity: 1; } 80% { transform: rotate(5deg) scale(1.1); opacity: 0.6; } 100% { transform: rotate(10deg) scale(1); opacity: 0; } }
@keyframes dr-abyss { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }

/* duke-offers-silence */
.scn-duke-offers-silence {
  background:
    linear-gradient(180deg, #e8dac8 0%, #cfa67a 50%),
    radial-gradient(ellipse at 60% 80%, rgba(255,210,120,0.3) 0%, transparent 70%);
}
.scn-duke-offers-silence .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #b88864 0%, #c4986e 100%);
}
.scn-duke-offers-silence .desk {
  position: absolute; bottom: 20%; left: 15%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #5c3d2e 0%, #3a2218 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-duke-offers-silence .check-paper {
  position: absolute; bottom: 28%; left: 30%; width: 15%; height: 10%;
  background: linear-gradient(135deg, #fdf6e3 0%, #f0e0c0 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: dos-paper 3s ease-in-out infinite alternate;
}
.scn-duke-offers-silence .pen-hand {
  position: absolute; bottom: 30%; left: 28%; width: 8%; height: 14%;
  background: radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, #120b04 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  transform: rotate(-20deg);
  animation: dos-hand 3s ease-in-out infinite;
}
.scn-duke-offers-silence .inkpot {
  position: absolute; bottom: 28%; left: 20%; width: 5%; height: 8%;
  background: radial-gradient(circle at 30% 20%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: dos-inkpot 4s ease-in-out infinite alternate;
}
.scn-duke-offers-silence .duke-arm {
  position: absolute; bottom: 20%; right: 15%; width: 18%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #1a0e07 0%, #0d0602 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dos-arm 8s ease-in-out infinite;
}
.scn-duke-offers-silence .holmes-figure {
  position: absolute; bottom: 20%; left: 5%; width: 12%; height: 45%;
  background: radial-gradient(ellipse at 50% 100%, #0f0f0a 0%, #050302 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: dos-holmes 12s ease-in-out infinite alternate;
}
@keyframes dos-paper { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(2px); } 100% { transform: rotate(-3deg) translateX(-1px); } }
@keyframes dos-hand { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.05); } 100% { transform: rotate(-22deg) scale(0.95); } }
@keyframes dos-inkpot { 0% { box-shadow: 0 4px 6px rgba(0,0,0,0.5); } 50% { box-shadow: 0 2px 4px rgba(0,0,0,0.7); transform: translateY(-1px); } 100% { box-shadow: 0 6px 8px rgba(0,0,0,0.4); transform: translateY(0); } }
@keyframes dos-arm { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes dos-holmes { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.02); } 100% { opacity: 0.85; transform: scale(0.98); } }

.scn-no-pencil-match { background: linear-gradient(135deg, #2b1f1a 0%, #4a3525 50%, #1a1210 100%), radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%); }
.scn-no-pencil-match .bg { position: absolute; inset: 0; background: linear-gradient(180deg, #1f1410 0%, #3a2820 100%); }
.scn-no-pencil-match .lamp { position: absolute; top: 30%; left: 40%; width: 12px; height: 16px; background: radial-gradient(circle, #f0c070 0%, #c08030 60%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 30px 10px #c08030, 0 0 60px 20px rgba(192,128,48,.4); animation: npm-lamp 4s ease-in-out infinite alternate; }
.scn-no-pencil-match .desk { position: absolute; bottom: 20%; left: 25%; right: 25%; height: 18%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-no-pencil-match .figure { position: absolute; bottom: 20%; left: 40%; width: 16px; height: 40px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: npm-figure 5s ease-in-out infinite; }
.scn-no-pencil-match .window { position: absolute; top: 10%; right: 10%; width: 25%; height: 40%; background: linear-gradient(180deg, #101824 0%, #182840 60%); border: 2px solid #2a1a12; border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-no-pencil-match .curtain-left { position: absolute; top: 8%; left: 8%; width: 12%; height: 44%; background: linear-gradient(90deg, #4a3030 0%, #2a1a1a 100%); border-radius: 0 30% 30% 0 / 0 20% 20% 0; transform-origin: left center; animation: npm-curtain 8s ease-in-out infinite alternate; }
.scn-no-pencil-match .curtain-right { position: absolute; top: 8%; right: 8%; width: 12%; height: 44%; background: linear-gradient(90deg, #2a1a1a 0%, #4a3030 100%); border-radius: 30% 0 0 30% / 20% 0 0 20%; transform-origin: right center; animation: npm-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-no-pencil-match .dust { position: absolute; top: 35%; left: 50%; width: 3px; height: 3px; background: rgba(240,200,150,.5); border-radius: 50%; filter: blur(1px); animation: npm-dust 12s linear infinite; }
@keyframes npm-lamp { 0% { opacity: .8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .85; transform: scale(.98); } }
@keyframes npm-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes npm-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.08); } 100% { transform: scaleX(.95); } }
@keyframes npm-dust { 0% { transform: translate(0, 0) scale(1); opacity: .3; } 25% { transform: translate(20px, -15px) scale(1.2); opacity: .7; } 50% { transform: translate(40px, -5px) scale(.8); opacity: .5; } 75% { transform: translate(60px, -20px) scale(1.1); opacity: .9; } 100% { transform: translate(80px, 0) scale(1); opacity: .3; } }

.scn-morning-resolution { background: linear-gradient(180deg, #faf5e8 0%, #f0e4c8 50%, #e8d4a8 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-morning-resolution .bg { position: absolute; inset: 0; background: linear-gradient(180deg, #f0e4c8 0%, #e0d0b0 100%); }
.scn-morning-resolution .sunbeam { position: absolute; top: 0; left: 20%; width: 30%; height: 100%; background: linear-gradient(90deg, rgba(255,245,220,.6) 0%, rgba(255,245,220,.1) 100%); transform: skewX(-10deg); transform-origin: top left; animation: mr-sunbeam 15s ease-in-out infinite alternate; }
.scn-morning-resolution .window { position: absolute; top: 5%; left: 18%; width: 34%; height: 45%; background: linear-gradient(180deg, #c8e0f0 0%, #a0c0e0 100%); border: 3px solid #8a7a5a; border-radius: 4%; box-shadow: inset 0 0 30px rgba(255,255,200,.3); }
.scn-morning-resolution .curtain { position: absolute; top: 3%; left: 16%; width: 38%; height: 48%; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); border-radius: 10% 10% 0 0; opacity: .7; animation: mr-curtain 12s ease-in-out infinite alternate; }
.scn-morning-resolution .bed { position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 -6px 12px rgba(0,0,0,.2); }
.scn-morning-resolution .figure-sitting { position: absolute; bottom: 28%; left: 30%; width: 18px; height: 36px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-sit 6s ease-in-out infinite; }
.scn-morning-resolution .figure-standing { position: absolute; bottom: 28%; left: 55%; width: 20px; height: 42px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-stand 4s ease-in-out infinite; }
.scn-morning-resolution .mote { position: absolute; top: 25%; left: 30%; width: 2px; height: 2px; background: rgba(255,230,180,.8); border-radius: 50%; filter: blur(1px); animation: mr-mote 20s linear infinite; }
@keyframes mr-sunbeam { 0% { opacity: .5; transform: skewX(-10deg) scaleX(1); } 50% { opacity: .9; transform: skewX(-8deg) scaleX(1.2); } 100% { opacity: .6; transform: skewX(-12deg) scaleX(.9); } }
@keyframes mr-curtain { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(3px); } }
@keyframes mr-sit { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mr-stand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes mr-mote { 0% { transform: translate(0, 0) scale(1); opacity: .2; } 25% { transform: translate(15px, -10px) scale(1.5); opacity: .8; } 50% { transform: translate(30px, -5px) scale(.8); opacity: .4; } 75% { transform: translate(45px, -15px) scale(1.2); opacity: .6; } 100% { transform: translate(60px, 0) scale(1); opacity: .2; } }

.scn-new-evidence { background: linear-gradient(180deg, #f5ecd8 0%, #e8dcc4 50%, #dcc8a8 100%), radial-gradient(ellipse at 40% 30%, #fff5e0 0%, transparent 70%); }
.scn-new-evidence .bg { position: absolute; inset: 0; background: linear-gradient(180deg, #f0e4cc 0%, #e0d0b0 100%); }
.scn-new-evidence .table { position: absolute; bottom: 15%; left: 10%; right: 10%; height: 22%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 -4px 10px rgba(0,0,0,.3); }
.scn-new-evidence .hand { position: absolute; bottom: 24%; left: 40%; width: 22px; height: 40px; background: linear-gradient(180deg, #c8b090 0%, #a89070 100%); border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ne-hand 4s ease-in-out infinite; }
.scn-new-evidence .object { position: absolute; bottom: 32%; left: 45%; width: 14px; height: 18px; background: radial-gradient(circle, #f0d090 0%, #b09050 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 8px 2px rgba(200,160,80,.5); animation: ne-object 3s ease-in-out infinite alternate; }
.scn-new-evidence .light-ray { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(255,240,200,.3) 0%, transparent 50%); pointer-events: none; animation: ne-light 8s ease-in-out infinite alternate; }
.scn-new-evidence .shadow { position: absolute; bottom: 14%; left: 38%; width: 28%; height: 8%; background: rgba(0,0,0,.25); border-radius: 50%; filter: blur(4px); animation: ne-shadow 5s ease-in-out infinite; }
.scn-new-evidence .glint { position: absolute; bottom: 34%; left: 46%; width: 4px; height: 4px; background: white; border-radius: 50%; box-shadow: 0 0 10px 3px rgba(255,255,200,.8); animation: ne-glint 2s ease-in-out infinite; }
@keyframes ne-hand { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ne-object { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.08) rotate(5deg); } 100% { transform: scale(.95) rotate(-3deg); } }
@keyframes ne-light { 0% { opacity: .3; } 50% { opacity: .8; } 100% { opacity: .4; } }
@keyframes ne-shadow { 0% { transform: scaleX(1); opacity: .2; } 50% { transform: scaleX(1.3); opacity: .4; } 100% { transform: scaleX(.9); opacity: .25; } }
@keyframes ne-glint { 0% { opacity: .3; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: .4; transform: scale(.8); } }

.scn-soames-pitiable { background: linear-gradient(135deg, #e8e0d0 0%, #d8c8b0 50%, #c0a888 100%), radial-gradient(ellipse at 60% 40%, #fff5e0 0%, transparent 70%); }
.scn-soames-pitiable .bg { position: absolute; inset: 0; background: linear-gradient(180deg, #d8c8b0 0%, #c0a888 100%); }
.scn-soames-pitiable .clock { position: absolute; top: 8%; right: 10%; width: 40px; height: 40px; background: radial-gradient(circle, #f0e4c8 0%, #a09070 70%); border-radius: 50%; border: 3px solid #5a4a30; box-shadow: 0 0 20px rgba(0,0,0,.3); animation: sp-clock 1s steps(60) infinite; }
.scn-soames-pitiable .pendulum { position: absolute; top: 12%; right: 23%; width: 4px; height: 60px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a30 100%); transform-origin: top center; border-radius: 2px; animation: sp-pendulum 2s ease-in-out infinite; }
.scn-soames-pitiable .figure { position: absolute; bottom: 20%; left: 35%; width: 20px; height: 48px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-figure 3s ease-in-out infinite; }
.scn-soames-pitiable .desk { position: absolute; bottom: 10%; left: 20%; right: 20%; height: 18%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4); }
.scn-soames-pitiable .papers { position: absolute; bottom: 20%; left: 30%; width: 30%; height: 10%; background: linear-gradient(180deg, #f0e4c8 0%, #d8c8a8 100%); border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,.2); transform: rotate(-3deg); animation: sp-papers 4s ease-in-out infinite; }
.scn-soames-pitiable .shadow-fast { position: absolute; bottom: 16%; left: 30%; width: 20%; height: 6%; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(3px); animation: sp-shadow 2s ease-in-out infinite; }
@keyframes sp-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes sp-pendulum { 0% { transform: rotate(0deg); } 25% { transform: rotate(-20deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(20deg); } 100% { transform: rotate(0deg); } }
@keyframes sp-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(10px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sp-papers { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes sp-shadow { 0% { transform: translateX(0) scaleX(1); opacity: .2; } 50% { transform: translateX(10px) scaleX(1.4); opacity: .5; } 100% { transform: translateX(0) scaleX(.8); opacity: .3; } }

/* hopkins-arrives */
.scn-hopkins-arrives {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9c2a0 40%, #bfa88a 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 60%);
}
.scn-hopkins-arrives .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%);
  animation: ha-wall 20s ease-in-out infinite alternate;
}
.scn-hopkins-arrives .door {
  position: absolute; left: 10%; bottom: 0; width: 25%; height: 80%;
  background: linear-gradient(180deg, #6b5a44 0%, #4d3e2e 100%);
  border-radius: 4px 4px 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.2);
  transform-origin: left center; animation: ha-door 6s ease-in-out infinite;
}
.scn-hopkins-arrives .figure {
  position: absolute; left: 12%; bottom: 2%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1812 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center; animation: ha-figure 8s ease-in-out infinite;
}
.scn-hopkins-arrives .lamp {
  position: absolute; right: 15%; top: 20%; width: 8%; height: 15%;
  background: radial-gradient(circle at 50% 20%, #f0d89a 0%, #d4a86a 60%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(212,168,106,0.5);
  animation: ha-lamp 3s ease-in-out infinite alternate;
}
.scn-hopkins-arrives .window {
  position: absolute; right: 30%; top: 5%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #c6d8f0 0%, #a0bcd4 100%);
  border: 6px solid #5a4a3a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: ha-window 12s ease-in-out infinite alternate;
}
.scn-hopkins-arrives .rug {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 6%;
  background: linear-gradient(90deg, #8a6a4e 0%, #b58a6a 25%, #9a7a5a 50%, #b58a6a 75%, #8a6a4e 100%);
  border-radius: 10px; box-shadow: 0 -2px 6px rgba(0,0,0,0.2);
  animation: ha-rug 15s ease-in-out infinite;
}
.scn-hopkins-arrives .shadow {
  position: absolute; left: 15%; bottom: 0; width: 30%; height: 40%;
  background: linear-gradient(180deg, rgba(40,30,20,0.4) 0%, transparent 100%);
  filter: blur(8px); animation: ha-shadow 7s ease-in-out infinite alternate;
}
@keyframes ha-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes ha-door { 0% { transform: scaleX(1) } 25% { transform: scaleX(0.95) translateX(-2px) } 50% { transform: scaleX(1.02) } 75% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes ha-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(0.5deg) } 100% { transform: translateX(16px) rotate(0deg) } }
@keyframes ha-lamp { 0% { opacity:0.85; box-shadow: 0 0 20px 8px rgba(212,168,106,0.4); } 50% { opacity:1; box-shadow: 0 0 40px 16px rgba(212,168,106,0.6); } 100% { opacity:0.9; box-shadow: 0 0 25px 10px rgba(212,168,106,0.45); } }
@keyframes ha-window { 0% { opacity:0.7; background-position:0% 0%; } 50% { opacity:0.9; background-position:50% 50%; } 100% { opacity:0.75; background-position:100% 100%; } }
@keyframes ha-rug { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes ha-shadow { 0% { opacity:0.5; transform: skewX(-2deg); } 50% { opacity:0.7; transform: skewX(2deg); } 100% { opacity:0.55; transform: skewX(0deg); } }

/* holmes-questions-pouch */
.scn-holmes-questions-pouch {
  background: linear-gradient(180deg, #fff2e0 0%, #e8d8c0 40%, #d0bea0 100%),
    radial-gradient(ellipse at 50% 70%, #ffffff 0%, transparent 60%);
}
.scn-holmes-questions-pouch .desk {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #6b4e30 0%, #4a3420 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: hq-desk 14s ease-in-out infinite alternate;
}
.scn-holmes-questions-pouch .holmes-silhouette {
  position: absolute; left: 25%; bottom: 30%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #2a2218 0%, #14100a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center; animation: hq-holmes 6s ease-in-out infinite;
}
.scn-holmes-questions-pouch .pouch {
  position: absolute; left: 45%; bottom: 35%; width: 10%; height: 12%;
  background: linear-gradient(135deg, #8a6030 0%, #5e4020 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: hq-pouch 4s ease-in-out infinite alternate;
}
.scn-holmes-questions-pouch .magnifier {
  position: absolute; right: 30%; bottom: 38%; width: 6%; height: 20%;
  background: radial-gradient(circle at 50% 20%, #b8d0e8 0%, #6a8aac 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(106,138,172,0.5);
  animation: hq-magnifier 5s ease-in-out infinite;
}
.scn-holmes-questions-pouch .lamp {
  position: absolute; right: 10%; top: 10%; width: 6%; height: 10%;
  background: radial-gradient(circle, #f4c878 0%, #d4a050 70%);
  border-radius: 50%; box-shadow: 0 0 30px 12px rgba(212,160,80,0.5);
  animation: hq-lamp 3s ease-in-out infinite alternate;
}
.scn-holmes-questions-pouch .shadow {
  position: absolute; left: 20%; bottom: 0; width: 60%; height: 20%;
  background: linear-gradient(180deg, rgba(30,20,10,0.3) 0%, transparent 100%);
  filter: blur(6px); animation: hq-shadow 8s ease-in-out infinite alternate;
}
@keyframes hq-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98); } }
@keyframes hq-holmes { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(9px) rotate(0.5deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes hq-pouch { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes hq-magnifier { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(3px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes hq-lamp { 0% { opacity:0.8; box-shadow: 0 0 20px 8px rgba(212,160,80,0.4); } 50% { opacity:1; box-shadow: 0 0 40px 16px rgba(212,160,80,0.6); } 100% { opacity:0.85; box-shadow: 0 0 25px 10px rgba(212,160,80,0.45); } }
@keyframes hq-shadow { 0% { opacity:0.4; transform: scaleX(0.95); } 50% { opacity:0.6; transform: scaleX(1.05); } 100% { opacity:0.45; transform: scaleX(1); } }

/* hopkins-gives-dates */
.scn-hopkins-gives-dates {
  background: linear-gradient(180deg, #f0e6d0 0%, #dcc8a8 50%, #c0a88a 100%),
    radial-gradient(ellipse at 50% 80%, #fff5e0 0%, transparent 60%);
}
.scn-hopkins-gives-dates .bookshelf {
  position: absolute; left: 5%; top: 5%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2618 100%);
  border-radius: 4px; box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: hg-bookshelf 18s ease-in-out infinite alternate;
}
.scn-hopkins-gives-dates .hopkins-figure {
  position: absolute; left: 35%; bottom: 12%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #2e241a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center; animation: hg-hopkins 5s ease-in-out infinite;
}
.scn-hopkins-gives-dates .paper {
  position: absolute; left: 38%; bottom: 42%; width: 15%; height: 20%;
  background: linear-gradient(135deg, #faf0dc 0%, #e6d4b8 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: hg-paper 7s ease-in-out infinite;
}
.scn-hopkins-gives-dates .clock {
  position: absolute; right: 15%; top: 10%; width: 12%; height: 16%;
  background: radial-gradient(circle at 50% 40%, #f0d8a0 0%, #c0a060 80%);
  border-radius: 50%; border: 4px solid #5a3e2a;
  animation: hg-clock 10s ease-in-out infinite alternate;
}
.scn-hopkins-gives-dates .chair {
  position: absolute; left: 30%; bottom: 0; width: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3420 0%, #2e1e10 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: hg-chair 12s ease-in-out infinite;
}
.scn-hopkins-gives-dates .carpet {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 5%;
  background: linear-gradient(90deg, #6a4e3a 0%, #8a6a4e 25%, #6a4e3a 50%, #8a6a4e 75%, #6a4e3a 100%);
  border-radius: 8px; box-shadow: 0 -2px 4px rgba(0,0,0,0.15);
  animation: hg-carpet 20s ease-in-out infinite alternate;
}
@keyframes hg-bookshelf { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes hg-hopkins { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(0.5deg); } 100% { transform: translateX(8px) rotate(0deg); } }
@keyframes hg-paper { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hg-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes hg-chair { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(0.98) translateY(0); } }
@keyframes hg-carpet { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }

/* hopkins-on-carey-character */
.scn-hopkins-on-carey-character {
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 40%, #0a0806 100%),
    radial-gradient(ellipse at 60% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-hopkins-on-carey-character .portrait {
  position: absolute; left: 50%; top: 5%; width: 22%; height: 35%;
  background: linear-gradient(135deg, #5a3e2a 0%, #2e1e10 100%);
  border: 6px solid #8a6a4e; border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: hc-portrait 12s ease-in-out infinite alternate;
}
.scn-hopkins-on-carey-character .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%);
  animation: hc-wall 20s ease-in-out infinite alternate;
}
.scn-hopkins-on-carey-character .lamp {
  position: absolute; left: 25%; top: 10%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #d4a050 0%, #8a6030 80%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(212,160,80,0.6);
  animation: hc-lamp 4s ease-in-out infinite alternate;
}
.scn-hopkins-on-carey-character .shadow-figure {
  position: absolute; left: 40%; bottom: 0; width: 20%; height: 50%;
  background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  filter: blur(10px); animation: hc-shadow 8s ease-in-out infinite alternate;
}
.scn-hopkins-on-carey-character .candle {
  position: absolute; right: 15%; bottom: 20%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #f0d8a0 0%, #c08040 60%, #5a3e2a 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px rgba(192,128,64,0.5);
  animation: hc-candle 3s ease-in-out infinite alternate;
}
.scn-hopkins-on-carey-character .desk {
  position: absolute; right: 5%; bottom: 0; width: 30%; height: 20%;
  background: linear-gradient(180deg, #4a3420 0%, #2e1e10 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: hc-desk 14s ease-in-out infinite;
}
@keyframes hc-portrait { 0% { opacity:0.7; transform: scale(0.98); } 50% { opacity:0.9; transform: scale(1.02); } 100% { opacity:0.75; transform: scale(1); } }
@keyframes hc-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes hc-lamp { 0% { opacity:0.6; box-shadow: 0 0 20px 8px rgba(212,160,80,0.3); } 50% { opacity:0.9; box-shadow: 0 0 50px 20px rgba(212,160,80,0.6); } 100% { opacity:0.65; box-shadow: 0 0 30px 12px rgba(212,160,80,0.4); } }
@keyframes hc-shadow { 0% { opacity:0.3; transform: translateX(-5px); } 50% { opacity:0.6; transform: translateX(5px); } 100% { opacity:0.35; transform: translateX(0px); } }
@keyframes hc-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-2px); } 100% { transform: scaleY(0.95) translateY(0); } }
@keyframes hc-desk { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }

.scn-duke-pleads-for-james {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4a76a 40%, #c4785a 100%),
              radial-gradient(ellipse at 20% 30%, #fff9e6 0%, transparent 70%);
}
.scn-duke-pleads-for-james .window-light {
  position: absolute; inset: 0 0 0 50%; background: linear-gradient(90deg, rgba(255,245,200,0.9) 0%, rgba(255,220,160,0.2) 60%, transparent 100%);
  animation: dpj-light-pulse 5s ease-in-out infinite alternate;
}
.scn-duke-pleads-for-james .wall-shadow {
  position: absolute; inset: 0; background: linear-gradient(135deg, transparent 55%, rgba(80,40,20,0.5) 70%, rgba(40,20,10,0.8) 100%);
  animation: dpj-shadow-shift 8s ease-in-out infinite alternate;
}
.scn-duke-pleads-for-james .desk {
  position: absolute; bottom: 18%; left: 10%; width: 55%; height: 12%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2e1a 100%); border-radius: 4px 40px 20px 4px; box-shadow: 0 -6px 15px rgba(0,0,0,0.4);
  animation: dpj-desk-settle 12s ease-in-out infinite;
}
.scn-duke-pleads-for-james .paper {
  position: absolute; bottom: 24%; left: 18%; width: 20%; height: 4%; background: #f0e0c0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3), inset 0 0 10px rgba(180,140,80,0.2);
  animation: dpj-paper-flutter 3s ease-in-out infinite alternate;
}
.scn-duke-pleads-for-james .figure.pleading {
  position: absolute; bottom: 22%; left: 40%; width: 16%; height: 50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: dpj-plead-gesture 4s ease-in-out infinite;
}
.scn-duke-pleads-for-james .inkwell {
  position: absolute; bottom: 20%; left: 25%; width: 3%; height: 5%; background: radial-gradient(circle, #4a3a2a 0%, #1a120a 100%); border-radius: 50%; box-shadow: 0 3px 8px rgba(0,0,0,0.5);
  animation: dpj-inkwell-steady 6s ease-in-out infinite;
}
@keyframes dpj-light-pulse { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dpj-shadow-shift { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes dpj-desk-settle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes dpj-paper-flutter { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes dpj-plead-gesture { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(5px); } 50% { transform: rotate(0deg) translateX(10px); } 75% { transform: rotate(3deg) translateX(15px); } 100% { transform: rotate(0deg) translateX(20px); } }
@keyframes dpj-inkwell-steady { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

.scn-holmes-urges-frankness {
  background: linear-gradient(180deg, #fdf5e6 0%, #e8d5b8 50%, #d4b896 100%);
  box-shadow: inset 0 0 100px rgba(200,170,120,0.3);
}
.scn-holmes-urges-frankness .bg-warm {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 30%, #fff9ee 0%, transparent 70%);
  animation: huf-ambient 10s ease-in-out infinite alternate;
}
.scn-holmes-urges-frankness .window-frame {
  position: absolute; top: 8%; left: 65%; width: 28%; height: 60%; border: 6px solid #6a4a2a; border-radius: 4px; background: linear-gradient(180deg, #c4d8f0 0%, #a4bcd8 100%);
  box-shadow: inset 0 0 20px rgba(255,255,200,0.6), 0 10px 30px rgba(0,0,0,0.2);
  animation: huf-window-glow 6s ease-in-out infinite alternate;
}
.scn-holmes-urges-frankness .chair-left {
  position: absolute; bottom: 18%; left: 15%; width: 22%; height: 50%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; box-shadow: 5px 0 15px rgba(0,0,0,0.3);
  animation: huf-chair-sway 8s ease-in-out infinite;
}
.scn-holmes-urges-frankness .chair-right {
  position: absolute; bottom: 18%; right: 18%; width: 22%; height: 50%; background: linear-gradient(180deg, #4a2a12 0%, #2a1a08 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; box-shadow: -5px 0 15px rgba(0,0,0,0.3);
  animation: huf-chair-sway 8s ease-in-out infinite reverse;
}
.scn-holmes-urges-frankness .table {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 8%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius: 6px 6px 50% 50%; box-shadow: 0 5px 20px rgba(0,0,0,0.3);
  animation: huf-table-gentle 12s ease-in-out infinite;
}
.scn-holmes-urges-frankness .tea-cup {
  position: absolute; bottom: 25%; left: 43%; width: 4%; height: 6%; background: radial-gradient(ellipse, #faf0e0 0%, #d0b890 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 10px rgba(200,170,120,0.3);
  animation: huf-cup-steam 4s ease-in-out infinite alternate;
}
.scn-holmes-urges-frankness .portrait {
  position: absolute; top: 12%; right: 10%; width: 12%; height: 22%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius: 8px; border: 3px solid #9a7a5a; box-shadow: 0 0 20px rgba(100,80,40,0.5);
  animation: huf-portrait-fade 15s ease-in-out infinite alternate;
}
@keyframes huf-ambient { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes huf-window-glow { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.6), 0 10px 30px rgba(0,0,0,0.2); } 50% { box-shadow: inset 0 0 40px rgba(255,255,220,0.9), 0 10px 30px rgba(0,0,0,0.15); } 100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.6), 0 10px 30px rgba(0,0,0,0.2); } }
@keyframes huf-chair-sway { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes huf-table-gentle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes huf-cup-steam { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(-4px) scale(1.05); opacity: 1; } 100% { transform: translateY(0) scale(1); opacity: 0.8; } }
@keyframes huf-portrait-fade { 0% { opacity: 0.7; filter: brightness(0.9); } 50% { opacity: 1; filter: brightness(1.1); } 100% { opacity: 0.8; filter: brightness(1); } }

.scn-duke-reveals-james-is-son {
  background: linear-gradient(180deg, #2a1a0e 0%, #5a3a22 40%, #8a6a4a 80%, #c4a878 100%);
  box-shadow: inset 0 0 120px rgba(200,150,80,0.4);
}
.scn-duke-reveals-james-is-son .wall-panel {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0%, transparent 10%, rgba(180,140,100,0.1) 10%, rgba(180,140,100,0.1) 12%);
  animation: drj-panel-glow 12s ease-in-out infinite alternate;
}
.scn-duke-reveals-james-is-son .window-arch {
  position: absolute; top: 5%; left: 12%; width: 35%; height: 70%; background: radial-gradient(ellipse 130% 100% at 50% 0%, #ffecd0 0%, #c4a878 60%, transparent 70%);
  border-radius: 50% / 20% 20% 0 0; box-shadow: 0 0 50px rgba(255,230,180,0.5);
  animation: drj-arch-light 8s ease-in-out infinite alternate;
}
.scn-duke-reveals-james-is-son .chair-duke {
  position: absolute; bottom: 12%; right: 15%; width: 28%; height: 65%; background: linear-gradient(180deg, #3a2210 0%, #1a0e08 100%); border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%; box-shadow: -10px 0 30px rgba(0,0,0,0.6);
  animation: drj-chair-recline 6s ease-in-out infinite;
}
.scn-duke-reveals-james-is-son .silhouette-holmes {
  position: absolute; bottom: 20%; left: 20%; width: 18%; height: 45%; background: linear-gradient(180deg, #0a0604 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: drj-holmes-shift 10s ease-in-out infinite alternate;
}
.scn-duke-reveals-james-is-son .carpet {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 12%; background: linear-gradient(135deg, #4a2a1a 0%, #6a3a2a 30%, #4a2a1a 100%); border-radius: 20px 20px 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.5);
  animation: drj-carpet-settle 15s ease-in-out infinite;
}
.scn-duke-reveals-james-is-son .shadow-dramatic {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 60%; background: linear-gradient(180deg, transparent 30%, rgba(20,10,5,0.7) 100%);
  animation: drj-shadow-deep 7s ease-in-out infinite alternate;
}
.scn-duke-reveals-james-is-son .portrait-frame {
  position: absolute; top: 8%; right: 8%; width: 15%; height: 25%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border: 4px solid #6a4a2a; border-radius: 4px; box-shadow: 0 0 30px rgba(100,60,20,0.6);
  animation: drj-portrait-breathe 9s ease-in-out infinite;
}
@keyframes drj-panel-glow { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes drj-arch-light { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.02) scaleY(1.01); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes drj-chair-recline { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-2deg) translateX(-3px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes drj-holmes-shift { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes drj-carpet-settle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes drj-shadow-deep { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes drj-portrait-breathe { 0%,100% { transform: scale(1); } 50% { transform: scale(1.03); } }

.scn-duke-continues-story {
  background: linear-gradient(180deg, #4a3020 0%, #7a5a3a 30%, #b8905a 70%, #d4b88a 100%);
  box-shadow: inset 0 0 80px rgba(100,60,20,0.3);
}
.scn-duke-continues-story .floor-tiles {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%; background: repeating-conic-gradient(#5a3a22 0% 25%, #4a2e1a 0% 50%) 0 0 / 8% 8%;
  animation: dcs-tiles-shift 20s linear infinite;
}
.scn-duke-continues-story .tall-window {
  position: absolute; top: 0; left: 10%; width: 25%; height: 85%; background: linear-gradient(180deg, #ffecd0 0%, #d4b88a 100%); border: 8px solid #3a2210; border-radius: 0 0 20px 20px;
  box-shadow: inset 0 0 40px rgba(255,220,160,0.6), 10px 0 30px rgba(0,0,0,0.4);
  animation: dcs-window-glow 7s ease-in-out infinite alternate;
}
.scn-duke-continues-story .desk-wood {
  position: absolute; bottom: 15%; left: 35%; width: 45%; height: 10%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius: 4px 4px 30px 30px; box-shadow: 0 -8px 25px rgba(0,0,0,0.5);
  animation: dcs-desk-rest 10s ease-in-out infinite;
}
.scn-duke-continues-story .decanter {
  position: absolute; bottom: 20%; left: 48%; width: 6%; height: 12%; background: radial-gradient(ellipse at 50% 30%, #c06030 0%, #6a2a0e 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 20px rgba(200,80,30,0.3);
  animation: dcs-decanter-sway 5s ease-in-out infinite alternate;
}
.scn-duke-continues-story .glass {
  position: absolute; bottom: 20%; left: 56%; width: 4%; height: 8%; background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 0 10px rgba(200,180,140,0.4);
  animation: dcs-glass-tilt 4s ease-in-out infinite;
}
.scn-duke-continues-story .hand-gesture {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 25%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: dcs-hand-move 4s ease-in-out infinite;
}
.scn-duke-continues-story .shadow-long {
  position: absolute; bottom: 0; left: 20%; width: 70%; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(20,10,5,0.6) 100%);
  animation: dcs-shadow-crawl 12s ease-in-out infinite alternate;
}
@keyframes dcs-tiles-shift { 0% { background-position: 0 0; } 100% { background-position: 8% 8%; } }
@keyframes dcs-window-glow { 0% { box-shadow: inset 0 0 40px rgba(255,220,160,0.6), 10px 0 30px rgba(0,0,0,0.4); } 50% { box-shadow: inset 0 0 60px rgba(255,230,180,0.8), 10px 0 30px rgba(0,0,0,0.3); } 100% { box-shadow: inset 0 0 40px rgba(255,220,160,0.6), 10px 0 30px rgba(0,0,0,0.4); } }
@keyframes dcs-desk-rest { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes dcs-decanter-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes dcs-glass-tilt { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(3deg) translateX(2px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes dcs-hand-move { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(5deg) translateX(5px); } 50% { transform: rotate(0deg) translateX(10px); } 75% { transform: rotate(-5deg) translateX(15px); } 100% { transform: rotate(0deg) translateX(20px); } }
@keyframes dcs-shadow-crawl { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(5px); } 100% { transform: scaleX(1) translateX(0); } }

.scn-examining-stable {
  background:
    linear-gradient(180deg, #2c1a3e 0%, #4a2a4e 30%, #6a3a4a 60%, #5a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #8a4a3a 0%, transparent 60%);
}
.scn-examining-stable .sky-dusk {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a4a5a 0%, #4a2a3a 40%, transparent 100%);
  animation: exs-sky 14s ease-in-out infinite alternate;
}
.scn-examining-stable .stable-roof {
  position: absolute; bottom: 50%; left: 15%; width: 70%; height: 18%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: exs-roof 20s ease-in-out infinite alternate;
}
.scn-examining-stable .stable-wall {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.7);
  animation: exs-wall 10s ease-in-out infinite;
}
.scn-examining-stable .hay-bale {
  position: absolute; bottom: 18%; left: 33%; width: 30px; height: 24px;
  background: radial-gradient(ellipse at 40% 40%, #8a7a3a, #6a5a1a);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: exs-hay 7s ease-in-out infinite;
}
.scn-examining-stable .horse-silhouette-a {
  position: absolute; bottom: 22%; left: 40%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 50% 30% 40% / 60% 70% 30% 40%;
  transform-origin: bottom center;
  animation: exs-horse 6s ease-in-out infinite;
}
.scn-examining-stable .horse-silhouette-b {
  position: absolute; bottom: 24%; left: 52%; width: 44px; height: 54px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 50% 30% 40% / 60% 70% 30% 40%;
  transform-origin: bottom center;
  animation: exs-horse 6s ease-in-out infinite 0.8s;
}
.scn-examining-stable .lantern-glow {
  position: absolute; bottom: 40%; left: 25%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 50%, #d0a060 0%, #a07030 60%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 24px 10px #b08040, 0 0 48px 20px rgba(176,128,64,0.4);
  animation: exs-lantern 3s ease-in-out infinite alternate;
}
.scn-examining-stable .holmes-figure {
  position: absolute; bottom: 16%; left: 35%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: exs-holmes 9s ease-in-out infinite;
}
@keyframes exs-sky { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes exs-roof { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.3deg); } }
@keyframes exs-wall { 0% { transform: translateX(0); } 50% { transform: translateX(-1px); } 100% { transform: translateX(1px); } }
@keyframes exs-hay { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(1deg); } 100% { transform: scale(1) rotate(-1deg); } }
@keyframes exs-horse { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes exs-lantern { 0% { box-shadow: 0 0 18px 6px #b08040, 0 0 36px 12px rgba(176,128,64,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 30px 12px #d0a060, 0 0 60px 20px rgba(208,160,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 22px 8px #b08040, 0 0 44px 16px rgba(176,128,64,0.35); opacity: 0.9; } }
@keyframes exs-holmes { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(12px) translateY(0) rotate(-1deg); } 75% { transform: translateX(18px) translateY(-2px) rotate(3deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }

/* ---- smithy-confrontation ---- */
.scn-smithy-confrontation {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #3a2a3a 40%, #4a3a2a 80%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 40%, #6a3a2a 0%, transparent 70%);
}
.scn-smithy-confrontation .smithy-wall {
  position: absolute; inset: 10% 10% 5% 10%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
  animation: smc-wall 15s ease-in-out infinite alternate;
}
.scn-smithy-confrontation .forge-fire {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 60px;
  background: radial-gradient(circle at 50% 40%, #ff8a40 0%, #d05020 50%, #4a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 60px 30px #d05020, 0 0 120px 60px rgba(208,80,32,0.4);
  animation: smc-fire 4s ease-in-out infinite alternate;
}
.scn-smithy-confrontation .anvil {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: smc-anvil 8s ease-in-out infinite;
}
.scn-smithy-confrontation .tool-scatter {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 10px;
  background: linear-gradient(90deg, #3a3a3a 0%, #2a2a2a 40%, transparent 100%);
  border-radius: 20%; transform: rotate(-15deg);
  animation: smc-tools 12s ease-in-out infinite alternate;
}
.scn-smithy-confrontation .landlord-shadow {
  position: absolute; bottom: 15%; right: 25%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smc-landlord 6s ease-in-out infinite;
}
.scn-smithy-confrontation .holmes-silhouette {
  position: absolute; bottom: 15%; left: 20%; width: 12px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smc-holmes 8s ease-in-out infinite;
}
.scn-smithy-confrontation .spark-embers {
  position: absolute; bottom: 40%; left: 42%; width: 4px; height: 4px;
  background: #ffaa40;
  border-radius: 50%; box-shadow: 0 0 8px 2px #ffaa40;
  animation: smc-embers 2.5s ease-in-out infinite alternate;
}
@keyframes smc-wall { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.005); opacity: 1; } 100% { transform: scale(0.995); opacity: 0.8; } }
@keyframes smc-fire { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }
@keyframes smc-anvil { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes smc-tools { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(3px); } 100% { transform: rotate(-18deg) translateX(-2px); } }
@keyframes smc-landlord { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes smc-holmes { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes smc-embers { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 50% { transform: translate(2px, -10px) scale(1.5); opacity: 1; } 100% { transform: translate(-2px, -20px) scale(0.8); opacity: 0; } }

/* ---- hayes-threatens ---- */
.scn-hayes-threatens {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a0a0a 40%, #2a1a0a 80%, #1a0a0a 100%),
    radial-gradient(ellipse at 30% 50%, #3a1a0a 0%, transparent 80%);
}
.scn-hayes-threatens .dark-backdrop {
  position: absolute; inset: 5% 5% 5% 5%;
  background: linear-gradient(135deg, #0a0a0a 0%, #1a0a0a 100%);
  border-radius: 5%; box-shadow: inset 0 0 40px rgba(0,0,0,0.9);
  animation: hth-backdrop 20s ease-in-out infinite alternate;
}
.scn-hayes-threatens .forge-hearth-glow {
  position: absolute; bottom: 20%; left: 10%; width: 60px; height: 50px;
  background: radial-gradient(circle at 50% 40%, #ff8020 0%, #b04010 50%, #2a0a00 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 40px 20px #b04010, 0 0 80px 40px rgba(176,64,16,0.4);
  animation: hth-hearth 5s ease-in-out infinite alternate;
}
.scn-hayes-threatens .landlord-torso {
  position: absolute; bottom: 10%; left: 30%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hth-torso 7s ease-in-out infinite;
}
.scn-hayes-threatens .landlord-arm {
  position: absolute; bottom: 50%; left: 40%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20%; transform: rotate(-30deg);
  transform-origin: bottom left;
  animation: hth-arm 4s ease-in-out infinite alternate;
}
.scn-hayes-threatens .hammer-raised {
  position: absolute; bottom: 65%; left: 42%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 30% 30%; transform: rotate(20deg);
  animation: hth-hammer 3s ease-in-out infinite;
}
.scn-hayes-threatens .holmes-small-figure {
  position: absolute; bottom: 10%; right: 20%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hth-holmes 10s ease-in-out infinite;
}
.scn-hayes-threatens .floating-smoke {
  position: absolute; bottom: 70%; left: 15%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,80,60,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: hth-smoke 15s ease-in-out infinite alternate;
}
@keyframes hth-backdrop { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hth-hearth { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 50% { transform: scale(1.05) translateY(-2px); opacity: 1; } 100% { transform: scale(0.95) translateY(0); opacity: 0.9; } }
@keyframes hth-torso { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hth-arm { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(-20deg) scaleY(1.1); } 100% { transform: rotate(-35deg) scaleY(0.95); } }
@keyframes hth-hammer { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes hth-holmes { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hth-smoke { 0% { transform: translate(0, 0) scale(1); opacity: 0.2; } 50% { transform: translate(5px, -10px) scale(1.3); opacity: 0.5; } 100% { transform: translate(-3px, -20px) scale(0.8); opacity: 0.1; } }

/* ---- holmes-decides-to-stay ---- */
.scn-holmes-decides-to-stay {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a1a3a 40%, #3a2a3a 80%, #2a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 80%);
}
.scn-holmes-decides-to-stay .twilight-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 50%, transparent 100%);
  animation: hds-sky 12s ease-in-out infinite alternate;
}
.scn-holmes-decides-to-stay .winding-road {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  clip-path: polygon(0% 30%, 20% 100%, 80% 100%, 100% 30%);
  animation: hds-road 18s ease-in-out infinite alternate;
}
.scn-holmes-decides-to-stay .wayside-grass {
  position: absolute; bottom: 15%; left: 5%; width: 90%; height: 20%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  animation: hds-grass 14s ease-in-out infinite;
}
.scn-holmes-decides-to-stay .inn-lights-distant {
  position: absolute; bottom: 45%; right: 20%; width: 20px; height: 14px;
  background: radial-gradient(circle at 50% 50%, #c0a060 0%, #806030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 12px #a07040, 0 0 60px 24px rgba(160,112,64,0.4);
  animation: hds-innlight 4s ease-in-out infinite alternate;
}
.scn-holmes-decides-to-stay .holmes-walking {
  position: absolute; bottom: 20%; left: 20%; width: 12px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hds-walk 6s ease-in-out infinite;
}
.scn-holmes-decides-to-stay .signpost {
  position: absolute; bottom: 25%; left: 65%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 10% 10%;
  animation: hds-sign 10s ease-in-out infinite alternate;
}
@keyframes hds-sky { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 0.9; transform: translateY(-2px); } 100% { opacity: 0.8; transform: translateY(1px); } }
@keyframes hds-road { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes hds-grass { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.01) rotate(1deg); } 100% { transform: scale(1) rotate(-1deg); } }
@keyframes hds-innlight { 0% { box-shadow: 0 0 20px 8px #a07040, 0 0 40px 16px rgba(160,112,64,0.3); opacity: 0.7; } 50% { box-shadow: 0 0 40px 16px #c0a060, 0 0 80px 30px rgba(192,160,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 25px 10px #a07040, 0 0 50px 20px rgba(160,112,64,0.35); opacity: 0.85; } }
@keyframes hds-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(3deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes hds-sign { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(-2deg); } }

/* Scene 1: holmes-investigation-lucas */
.scn-holmes-investigation-lucas {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 60%, #b8a88c 100%),
              radial-gradient(ellipse at 70% 20%, #f0e4d0 0%, transparent 60%);
}
.scn-holmes-investigation-lucas .wall-bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(135deg, #d4c8b0 0%, #c0b098 40%, #a8947c 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.08);
  animation: h1-wall 12s ease-in-out infinite alternate;
}
.scn-holmes-investigation-lucas .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #8a7a62 0%, #a89878 40%, #b8a888 100%);
  border-top: 3px solid #7a6a52;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-holmes-investigation-lucas .window {
  position:absolute; top:15%; left:8%; width:20%; height:45%;
  background: linear-gradient(180deg, #aac8e0 0%, #d0e4f0 50%, #f0f8ff 100%);
  border: 6px solid #7a6a52; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3), 0 0 40px rgba(180,200,230,0.3);
  animation: h1-window 18s ease-in-out infinite alternate;
}
.scn-holmes-investigation-lucas .table {
  position:absolute; bottom:25%; left:30%; width:40%; height:8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: h1-table 6s ease-in-out infinite;
}
.scn-holmes-investigation-lucas .chair-left {
  position:absolute; bottom:28%; left:22%; width:12%; height:18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 30% 30% 20% 20%;
  transform: rotate(-2deg);
  animation: h1-chair 8s ease-in-out infinite alternate;
}
.scn-holmes-investigation-lucas .chair-right {
  position:absolute; bottom:28%; right:22%; width:12%; height:18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 30% 30% 20% 20%;
  transform: rotate(2deg);
  animation: h1-chair 8s ease-in-out infinite alternate-reverse;
}
.scn-holmes-investigation-lucas .figure-holmes {
  position:absolute; bottom:22%; left:40%; width:10%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: h1-figure 4s ease-in-out infinite;
}
.scn-holmes-investigation-lucas .lamp-glow {
  position:absolute; bottom:30%; left:65%; width:6%; height:6%;
  background: radial-gradient(circle, #ffd080 0%, #e8b860 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.6), 0 0 60px 20px rgba(255,208,128,0.3);
  animation: h1-lamp 3s ease-in-out infinite alternate;
}
.scn-holmes-investigation-lucas .shadow-flicker {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: radial-gradient(ellipse at 65% 30%, rgba(0,0,0,0.15) 0%, transparent 70%);
  animation: h1-shadow 2s ease-in-out infinite alternate;
}
@keyframes h1-wall { 0%{opacity:0.85} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes h1-window { 0%{opacity:0.7;filter:brightness(0.9)} 50%{opacity:1;filter:brightness(1.1)} 100%{opacity:0.8;filter:brightness(0.95)} }
@keyframes h1-table { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes h1-chair { 0%{transform:rotate(-2deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-3px)} 100%{transform:rotate(-2deg) translateY(0)} }
@keyframes h1-figure { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(4px) rotate(-2deg)} 50%{transform:translateX(0) rotate(1deg)} 75%{transform:translateX(-3px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes h1-lamp { 0%{opacity:0.7;box-shadow:0 0 20px 6px rgba(255,208,128,0.4)} 50%{opacity:1;box-shadow:0 0 40px 15px rgba(255,208,128,0.7)} 100%{opacity:0.8;box-shadow:0 0 25px 8px rgba(255,208,128,0.5)} }
@keyframes h1-shadow { 0%{opacity:0.6} 50%{opacity:0.9} 100%{opacity:0.7} }

/* Scene 2: lady-hilda-visit */
.scn-lady-hilda-visit {
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b898 40%, #b0a080 100%),
              radial-gradient(ellipse at 80% 30%, #f0e4d0 0%, transparent 70%);
}
.scn-lady-hilda-visit .room-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #d4c0a8 0%, #c0ae96 50%, #a89880 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
}
.scn-lady-hilda-visit .doorway {
  position:absolute; bottom:30%; right:15%; width:25%; height:70%;
  background: linear-gradient(270deg, #8a7a62 0%, #7a6a52 30%, #5a4a3a 100%);
  border-radius: 0 0 8px 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: h2-door 20s ease-in-out infinite alternate;
}
.scn-lady-hilda-visit .floor-planks {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: repeating-linear-gradient(90deg, #9a8a72 0px, #9a8a72 30px, #b0a088 30px, #b0a088 60px);
  border-top: 4px solid #7a6a52;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-lady-hilda-visit .coat-stand {
  position:absolute; bottom:30%; left:18%; width:8%; height:40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 50% 50%;
  transform: rotate(1deg);
  animation: h2-stand 15s ease-in-out infinite;
}
.scn-lady-hilda-visit .figure-lady {
  position:absolute; bottom:22%; right:30%; width:8%; height:28%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: h2-figure-lady 5s ease-in-out infinite;
}
.scn-lady-hilda-visit .figure-holmes-stand {
  position:absolute; bottom:22%; left:30%; width:9%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: h2-figure-holmes 6s ease-in-out infinite;
}
.scn-lady-hilda-visit .lamp-hall {
  position:absolute; top:12%; left:55%; width:4%; height:6%;
  background: radial-gradient(circle, #f0c868 0%, #d8a840 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(240,200,104,0.6), 0 0 80px 30px rgba(240,200,104,0.2);
  animation: h2-lamp 3s ease-in-out infinite alternate;
}
.scn-lady-hilda-visit .shadow-door {
  position:absolute; bottom:0; right:15%; width:25%; height:30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: h2-shadow 4s ease-in-out infinite alternate;
}
@keyframes h2-door { 0%{opacity:0.8;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.02)} 100%{opacity:0.85;transform:scaleY(0.98)} }
@keyframes h2-stand { 0%{transform:rotate(1deg) translateY(0)} 50%{transform:rotate(0deg) translateY(-2px)} 100%{transform:rotate(1deg) translateY(0)} }
@keyframes h2-figure-lady { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(5px) rotate(2deg)} 50%{transform:translateX(0) rotate(-1deg)} 75%{transform:translateX(-4px) rotate(1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes h2-figure-holmes { 0%{transform:translateX(0) scaleY(1)} 50%{transform:translateX(3px) scaleY(1.03)} 100%{transform:translateX(0) scaleY(1)} }
@keyframes h2-lamp { 0%{opacity:0.7;box-shadow:0 0 30px 10px rgba(240,200,104,0.4)} 50%{opacity:1;box-shadow:0 0 50px 20px rgba(240,200,104,0.7)} 100%{opacity:0.8;box-shadow:0 0 35px 12px rgba(240,200,104,0.5)} }
@keyframes h2-shadow { 0%{opacity:0.4} 50%{opacity:0.7} 100%{opacity:0.5} }

/* Scene 3: holmes-investigation */
.scn-holmes-investigation {
  background: linear-gradient(180deg, #d8c8b0 0%, #c0b098 50%, #a89878 100%),
              radial-gradient(ellipse at 50% 60%, #e8dcc8 0%, transparent 60%);
}
.scn-holmes-investigation .bg-room {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #d0c0a8 0%, #b8a890 50%, #a09078 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.1);
  animation: h3-bg 14s ease-in-out infinite alternate;
}
.scn-holmes-investigation .desk {
  position:absolute; bottom:20%; left:20%; width:60%; height:15%;
  background: linear-gradient(0deg, #7a6a52 0%, #9a8a72 100%);
  border-radius: 6px; box-shadow: 0 6px 10px rgba(0,0,0,0.3);
  animation: h3-desk 9s ease-in-out infinite;
}
.scn-holmes-investigation .violin {
  position:absolute; bottom:32%; left:38%; width:8%; height:20%;
  background: linear-gradient(180deg, #a86a3a 0%, #8a4a1a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: h3-violin 5s ease-in-out infinite alternate;
}
.scn-holmes-investigation .sandwich-plate {
  position:absolute; bottom:22%; left:52%; width:10%; height:6%;
  background: linear-gradient(180deg, #d0b888 0%, #b09868 100%);
  border-radius: 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: h3-plate 8s ease-in-out infinite;
}
.scn-holmes-investigation .figure-holmes-close {
  position:absolute; bottom:15%; left:55%; width:12%; height:40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: h3-figure 4s ease-in-out infinite;
}
.scn-holmes-investigation .lamp-desk {
  position:absolute; bottom:30%; left:28%; width:5%; height:8%;
  background: radial-gradient(circle, #ffd080 0%, #e8b860 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.5), 0 0 60px 20px rgba(255,208,128,0.2);
  animation: h3-lamp 2.5s ease-in-out infinite alternate;
}
.scn-holmes-investigation .papers {
  position:absolute; bottom:22%; left:32%; width:10%; height:8%;
  background: #d8c8a0;
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  animation: h3-papers 7s ease-in-out infinite alternate;
}
.scn-holmes-investigation .shadow-arm {
  position:absolute; bottom:15%; left:40%; width:18%; height:25%;
  background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: h3-shadow 3s ease-in-out infinite alternate;
}
@keyframes h3-bg { 0%{opacity:0.85} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes h3-desk { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes h3-violin { 0%{transform:rotate(-15deg) translateX(0)} 50%{transform:rotate(-12deg) translateX(4px)} 100%{transform:rotate(-15deg) translateX(0)} }
@keyframes h3-plate { 0%{transform:scale(1)} 50%{transform:scale(1.02)} 100%{transform:scale(1)} }
@keyframes h3-figure { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(6px) rotate(-2deg)} 50%{transform:translateX(0) rotate(1deg)} 75%{transform:translateX(-5px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes h3-lamp { 0%{opacity:0.6;box-shadow:0 0 20px 6px rgba(255,208,128,0.4)} 50%{opacity:1;box-shadow:0 0 40px 15px rgba(255,208,128,0.7)} 100%{opacity:0.7;box-shadow:0 0 25px 8px rgba(255,208,128,0.5)} }
@keyframes h3-papers { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-2px) rotate(3deg)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes h3-shadow { 0%{opacity:0.5} 50%{opacity:0.8} 100%{opacity:0.6} }

/* Scene 4: paris-telegram */
.scn-paris-telegram {
  background: linear-gradient(180deg, #d8c4a8 0%, #c0ac90 40%, #a89478 100%),
              radial-gradient(ellipse at 50% 70%, #e8d8c0 0%, transparent 80%);
}
.scn-paris-telegram .desk-top {
  position:absolute; bottom:10%; left:10%; right:10%; height:20%;
  background: linear-gradient(0deg, #6a5a42 0%, #8a7a62 100%);
  border-radius: 8px; box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  animation: h4-desk 10s ease-in-out infinite;
}
.scn-paris-telegram .telegram {
  position:absolute; bottom:18%; left:45%; width:12%; height:10%;
  background: #c8b898;
  border: 2px solid #8a7a62;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: h4-telegram 6s ease-in-out infinite alternate;
}
.scn-paris-telegram .inkwell {
  position:absolute; bottom:16%; left:38%; width:4%; height:6%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: h4-inkwell 12s ease-in-out infinite;
}
.scn-paris-telegram .lamp-overhead {
  position:absolute; top:10%; left:40%; width:6%; height:8%;
  background: radial-gradient(circle, #ffd080 0%, #e8b860 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,208,128,0.5), 0 0 100px 40px rgba(255,208,128,0.2);
  animation: h4-lamp 3s ease-in-out infinite alternate;
}
.scn-paris-telegram .hand-left {
  position:absolute; bottom:18%; left:30%; width:6%; height:10%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: h4-hand-left 5s ease-in-out infinite;
}
.scn-paris-telegram .hand-right {
  position:absolute; bottom:18%; right:30%; width:6%; height:10%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: h4-hand-right 5s ease-in-out infinite;
}
.scn-paris-telegram .newspaper {
  position:absolute; bottom:12%; left:48%; width:30%; height:16%;
  background: repeating-linear-gradient(0deg, #d8c8a0 0px, #d8c8a0 4px, #c8b890 4px, #c8b890 8px);
  border: 2px solid #8a7a62;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: h4-paper 15s ease-in-out infinite alternate;
}
.scn-paris-telegram .shadow-pool {
  position:absolute; bottom:0; left:20%; right:20%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.15) 0%, transparent 70%);
  animation: h4-shadow 4s ease-in-out infinite alternate;
}
@keyframes h4-desk { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes h4-telegram { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-3px) rotate(2deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes h4-inkwell { 0%{transform:scale(1)} 50%{transform:scale(1.02)} 100%{transform:scale(1)} }
@keyframes h4-lamp { 0%{opacity:0.7;box-shadow:0 0 40px 15px rgba(255,208,128,0.4)} 50%{opacity:1;box-shadow:0 0 60px 25px rgba(255,208,128,0.7)} 100%{opacity:0.8;box-shadow:0 0 45px 18px rgba(255,208,128,0.5)} }
@keyframes h4-hand-left { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(5px) rotate(2deg)} 50%{transform:translateX(0) rotate(-1deg)} 75%{transform:translateX(-4px) rotate(1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes h4-hand-right { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(-5px) rotate(-2deg)} 50%{transform:translateX(0) rotate(1deg)} 75%{transform:translateX(4px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes h4-paper { 0%{opacity:0.8;transform:scale(1)} 50%{opacity:1;transform:scale(1.02)} 100%{opacity:0.85;transform:scale(0.98)} }
@keyframes h4-shadow { 0%{opacity:0.4} 50%{opacity:0.7} 100%{opacity:0.5} }

.scn-holmes-retirement-narration {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 30%, #d4bc8a 70%, #b89860 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e8 0%, transparent 60%);
}
.scn-holmes-retirement-narration .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0e0c0 0%, #e0c898 50%, #d0b880 100%);
  opacity: 0.7;
}
.scn-holmes-retirement-narration .window-frame {
  position: absolute; top: 6%; left: 60%; width: 26%; height: 38%;
  background: linear-gradient(180deg, #c8a870 0%, #a88850 30%, #8a6e3a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-holmes-retirement-narration .window-glass {
  position: absolute; top: 8%; left: 62%; width: 22%; height: 34%;
  background: linear-gradient(135deg, #fff8e8 0%, #f0e0c0 30%, #f8ecc8 60%, #fff8e8 100%);
  border-radius: 2% 2% 1% 1%; box-shadow: inset 0 0 30px #ffe8a0, 0 0 40px rgba(255,232,160,0.3);
  animation: hr-window-light 15s ease-in-out infinite alternate;
}
.scn-holmes-retirement-narration .desk {
  position: absolute; bottom: 16%; left: 50%; width: 56%; height: 14%;
  transform: translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #5a3e22 40%, #3a2a14 100%);
  border-radius: 2% 2% 4% 4%; box-shadow: 0 8px 24px rgba(0,0,0,0.5);
}
.scn-holmes-retirement-narration .desk-lamp {
  position: absolute; bottom: 28%; left: 52%; width: 8px; height: 22px;
  background: linear-gradient(180deg, #b89670 0%, #7a5a3a 100%); border-radius: 20% 20% 10% 10%;
}
.scn-holmes-retirement-narration .desk-lamp::after {
  content: ''; position: absolute; top: -6px; left: -4px; width: 16px; height: 10px;
  background: radial-gradient(circle, #ffe870 0%, #e8b840 40%, #c89820 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(232,184,64,0.4);
  animation: hr-lamp-glow 8s ease-in-out infinite alternate;
}
.scn-holmes-retirement-narration .chair {
  position: absolute; bottom: 16%; left: 50%; width: 18%; height: 22%;
  transform: translateX(-50%); background: linear-gradient(135deg, #5a3e22 0%, #3a2a14 60%, #2a1e0e 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
}
.scn-holmes-retirement-narration .figure-sitting {
  position: absolute; bottom: 22%; left: 50%; width: 10%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e0e 50%, #1a140a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-figure 12s ease-in-out infinite;
}
.scn-holmes-retirement-narration .papers {
  position: absolute; bottom: 20%; left: 56%; width: 12%; height: 4%;
  background: linear-gradient(135deg, #f5e8d0 0%, #e8d4a8 100%);
  border-radius: 4%; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: hr-paper 6s ease-in-out infinite alternate;
}
.scn-holmes-retirement-narration .bookshelf {
  position: absolute; top: 10%; right: 4%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #6a4e2e 0%, #5a3e22 30%, #4a321a 70%, #3a2a14 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
}
@keyframes hr-window-light {
  0% { opacity: 0.85; box-shadow: inset 0 0 20px #ffe8a0, 0 0 30px rgba(255,232,160,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 40px #fff0c0, 0 0 60px rgba(255,240,192,0.4); }
  100% { opacity: 0.9; box-shadow: inset 0 0 25px #ffe8a0, 0 0 35px rgba(255,232,160,0.25); }
}
@keyframes hr-lamp-glow {
  0% { box-shadow: 0 0 20px 6px rgba(232,184,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 14px rgba(232,184,64,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(232,184,64,0.35); opacity: 0.85; }
}
@keyframes hr-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); }
  100% { transform: translateX(-50%) rotate(0.5deg); }
}
@keyframes hr-paper {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(1deg); }
  100% { transform: scale(0.98) rotate(-1deg); }
}

.scn-prime-minister-visit {
  background:
    linear-gradient(180deg, #f5f0e0 0%, #e8e0c8 30%, #d8d0b8 60%, #c8c0a8 100%),
    radial-gradient(ellipse at 50% 30%, #fff8f0 0%, transparent 60%);
}
.scn-prime-minister-visit .room-back {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8e0c8 0%, #d0c8a8 40%, #b8b098 100%);
  opacity: 0.6;
}
.scn-prime-minister-visit .tall-window {
  position: absolute; top: 2%; left: 10%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #c0b898 0%, #a8a080 50%, #989070 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 30px rgba(0,0,0,0.2), 8px 0 20px rgba(0,0,0,0.1);
}
.scn-prime-minister-visit .window-light {
  position: absolute; top: 4%; left: 12%; width: 26%; height: 56%;
  background: linear-gradient(135deg, #fff5e0 0%, #fff0d0 30%, #ffecc0 70%, #ffe8b0 100%);
  border-radius: 2% 2% 1% 1%; box-shadow: inset 0 0 40px #fff0c0;
  animation: pm-light 20s ease-in-out infinite alternate;
}
.scn-prime-minister-visit .door {
  position: absolute; bottom: 0; right: 8%; width: 18%; height: 70%;
  background: linear-gradient(180deg, #6a5e4a 0%, #5a4e3a 40%, #4a3e2e 100%);
  border-radius: 6% 6% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.2);
}
.scn-prime-minister-visit .figure-left {
  position: absolute; bottom: 4%; left: 30%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pm-figure-left 8s ease-in-out infinite;
}
.scn-prime-minister-visit .figure-right {
  position: absolute; bottom: 4%; left: 46%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0e0e 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pm-figure-right 8s ease-in-out infinite 0.5s;
}
.scn-prime-minister-visit .carpet {
  position: absolute; bottom: 0; left: 6%; width: 88%; height: 8%;
  background: linear-gradient(90deg, #8a7a6a 0%, #7a6a5a 20%, #6a5a4a 50%, #7a6a5a 80%, #8a7a6a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.15);
}
.scn-prime-minister-visit .shadow-sharp {
  position: absolute; bottom: 8%; left: 28%; width: 34%; height: 12%;
  background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.08) 50%, transparent 100%);
  filter: blur(2px); animation: pm-shadow 12s ease-in-out infinite alternate;
}
@keyframes pm-light {
  0% { opacity: 0.8; box-shadow: inset 0 0 30px #fff0c0; }
  50% { opacity: 1; box-shadow: inset 0 0 60px #ffffff; }
  100% { opacity: 0.85; box-shadow: inset 0 0 35px #fff0c0; }
}
@keyframes pm-figure-left {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(0.5deg); }
  50% { transform: translateX(0) translateY(-1px) rotate(-0.5deg); }
  75% { transform: translateX(-2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pm-figure-right {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-2px) rotate(-0.5deg); }
  60% { transform: translateX(1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pm-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
  100% { opacity: 0.7; transform: scaleX(0.95); }
}

.scn-holmes-plans {
  background:
    linear-gradient(180deg, #e8dcc0 0%, #d8ccb0 30%, #c8bca0 60%, #b8a890 100%),
    radial-gradient(ellipse at 50% 40%, #f0e8d8 0%, transparent 70%);
}
.scn-holmes-plans .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d8ccb0 0%, #c8bca0 40%, #b8a890 100%);
}
.scn-holmes-plans .table {
  position: absolute; bottom: 10%; left: 50%; width: 50%; height: 12%;
  transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 4% 4% 6% 6%; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-holmes-plans .figure-holmes {
  position: absolute; bottom: 20%; left: 50%; width: 12%; height: 26%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 50%, #0e0e08 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: hp-figure 6s ease-in-out infinite;
}
.scn-holmes-plans .pipe {
  position: absolute; bottom: 28%; left: 54%; width: 14px; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2e20 60%, #1a140e 100%);
  border-radius: 50%; transform: rotate(-25deg);
  animation: hp-pipe 8s ease-in-out infinite;
}
.scn-holmes-plans .smoke {
  position: absolute; bottom: 34%; left: 56%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,190,180,0.6) 0%, rgba(200,190,180,0.1) 60%, transparent 100%);
  filter: blur(3px); animation: hp-smoke 6s ease-out infinite;
}
.scn-holmes-plans .newspaper {
  position: absolute; bottom: 14%; left: 56%; width: 20%; height: 8%;
  background: linear-gradient(135deg, #f0e8d8 0%, #e8dcc8 50%, #d8ccb8 100%);
  border-radius: 2%; box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  transform-origin: bottom left;
  animation: hp-paper 10s ease-in-out infinite alternate;
}
.scn-holmes-plans .clock {
  position: absolute; top: 6%; right: 6%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #7a6a5a 50%, #6a5a4a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: hp-clock 2s ease-in-out infinite;
}
.scn-holmes-plans .lamp-overhead {
  position: absolute; top: 2%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 20% 20% 40% 40%;
}
.scn-holmes-plans .lamp-overhead::after {
  content: ''; position: absolute; top: 30px; left: -20px; width: 60px; height: 40px;
  background: radial-gradient(ellipse, #fff0d0 0%, #ffe8b0 30%, rgba(255,232,176,0.2) 70%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: hp-lamp 6s ease-in-out infinite alternate;
}
@keyframes hp-figure {
  0% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(0.5deg) scaleY(1.01); }
  50% { transform: translateX(-50%) rotate(-0.3deg) scaleY(1); }
  75% { transform: translateX(-50%) translateY(1px) rotate(0.3deg) scaleY(0.99); }
  100% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
}
@keyframes hp-pipe {
  0% { transform: rotate(-25deg) scale(1); }
  30% { transform: rotate(-20deg) scale(1.02); }
  60% { transform: rotate(-28deg) scale(0.98); }
  100% { transform: rotate(-25deg) scale(1); }
}
@keyframes hp-smoke {
  0% { transform: translate(0,0) scale(0.5); opacity: 0.6; }
  50% { transform: translate(6px,-12px) scale(1.2); opacity: 0.3; }
  100% { transform: translate(12px,-24px) scale(1.6); opacity: 0; }
}
@keyframes hp-paper {
  0% { transform: scale(1) rotate(0deg); }
  30% { transform: scale(1.02) rotate(0.5deg); }
  60% { transform: scale(0.98) rotate(-0.5deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes hp-clock {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.03); }
}
@keyframes hp-lamp {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.75; transform: scaleX(0.95); }
}

.scn-lucas-murder-report {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 20%, #3a3a4e 50%, #2e2a3a 80%, #1a1628 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 70%);
}
.scn-lucas-murder-report .street-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #2e2a3a 40%, #3a3238 100%);
  opacity: 0.5;
}
.scn-lucas-murder-report .house-left {
  position: absolute; bottom: 0; left: 2%; width: 36%; height: 65%;
  background: linear-gradient(180deg, #4a3e3a 0%, #3a2e2a 30%, #2e2420 60%, #24201a 100%);
  border-radius: 6% 6% 0 0; box-shadow: -2px 0 10px rgba(0,0,0,0.5);
}
.scn-lucas-murder-report .house-left::before {
  content: ''; position: absolute; top: 8%; left: 10%; width: 12%; height: 6%;
  background: radial-gradient(circle, #3a3a4e 0%, #1a1a2e 100%);
  border-radius: 2px; box-shadow: 10px 14px 0 0 #3a3a4e, 10px 28px 0 0 #2e2e42;
}
.scn-lucas-murder-report .house-right {
  position: absolute; bottom: 0; right: 2%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #3e3a38 0%, #2e2a2a 30%, #241e1e 60%, #1a1616 100%);
  border-radius: 6% 6% 0 0; box-shadow: 2px 0 10px rgba(0,0,0,0.5);
}
.scn-lucas-murder-report .doorway {
  position: absolute; bottom: 0; left: 18%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 0 15px rgba(0,0,0,0.6), 0 0 20px 2px rgba(0,0,0,0.3);
}
.scn-lucas-murder-report .gas-lamp {
  position: absolute; bottom: 22%; left: 50%; width: 8px; height: 40px;
  transform: translateX(-50%); background: linear-gradient(180deg, #5a4e3e 0%, #3a3228 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-lucas-murder-report .gas-lamp::after {
  content: ''; position: absolute; top: -6px; left: -8px; width: 24px; height: 16px;
  background: radial-gradient(circle, #ffd880 0%, #e0a840 50%, #a06020 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(224,168,64,0.5);
  animation: lmr-lamp 3s ease-in-out infinite alternate;
}
.scn-lucas-murder-report .lamp-glow {
  position: absolute; bottom: 22%; left: 50%; width: 90px; height: 80px;
  transform: translate(-50%, 10px);
  background: radial-gradient(ellipse, rgba(224,168,64,0.15) 0%, rgba(224,168,64,0.05) 50%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: lmr-glow 4s ease-in-out infinite alternate;
}
.scn-lucas-murder-report .cobbles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: repeating-linear-gradient(90deg,
    #3a3632 0px, #3a3632 18px, #4a4440 18px, #4a4440 36px,
    #3a3632 36px, #3a3632 54px, #4a4440 54px, #4a4440 72px
  );
  background-size: 72px 100%;
  border-radius: 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  opacity: 0.6;
}
.scn-lucas-murder-report .shadow-figure {
  position: absolute; bottom: 12%; left: 36%; width: 8%; height: 22%;
  background: linear-gradient(180deg, rgba(10,10,20,0.9) 0%, rgba(10,10,20,0.5) 70%, transparent 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  filter: blur(1px);
  animation: lmr-shadow 6s ease-in-out infinite;
}
@keyframes lmr-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(224,168,64,0.3); opacity: 0.7; }
  30% { box-shadow: 0 0 40px 14px rgba(224,168,64,0.6); opacity: 1; }
  60% { box-shadow: 0 0 25px 8px rgba(224,168,64,0.4); opacity: 0.85; }
  100% { box-shadow: 0 0 30px 10px rgba(224,168,64,0.5); opacity: 0.9; }
}
@keyframes lmr-glow {
  0% { transform: translate(-50%, 10px) scale(0.8); opacity: 0.5; }
  50% { transform: translate(-50%, 12px) scale(1.1); opacity: 0.8; }
  100% { transform: translate(-50%, 8px) scale(0.9); opacity: 0.6; }
}
@keyframes lmr-shadow {
  0% { transform: translateX(0) scaleY(1); opacity: 0.6; }
  25% { transform: translateX(2px) scaleY(0.98); opacity: 0.7; }
  50% { transform: translateX(-1px) scaleY(1.02); opacity: 0.5; }
  75% { transform: translateX(1px) scaleY(0.97); opacity: 0.8; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.6; }
}

/* diningroom-resolution – tense, dim interior, warm browns/amber */
.scn-diningroom-resolution {
  background:
    linear-gradient(180deg, #1a1411 0%, #2a1e1a 40%, #3d2b24 70%, #4a3428 100%),
    radial-gradient(ellipse at 50% 0%, #4a3428 0%, transparent 70%);
}
.scn-diningroom-resolution .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1e1612 0%, #2a1e1a 80%);
  animation: dr-wall 12s ease-in-out infinite alternate;
}
.scn-diningroom-resolution .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1e1a 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.6);
}
.scn-diningroom-resolution .table {
  position: absolute; bottom: 28%; left: 50%; width: 160px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a3a2a 0%, #7a5038 50%, #5a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-diningroom-resolution .holmes {
  position: absolute; bottom: 32%; left: 38%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1e1a18 0%, #0e0a08 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: dr-holmes 5s ease-in-out infinite;
}
.scn-diningroom-resolution .woodley {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 45% 45% 35% 35%;
  transform-origin: bottom center;
  animation: dr-woodley 3s ease-in-out infinite alternate;
}
.scn-diningroom-resolution .girl {
  position: absolute; bottom: 26%; left: 64%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: dr-girl 4s ease-in-out infinite;
}
.scn-diningroom-resolution .lamp {
  position: absolute; bottom: 48%; left: 50%; width: 14px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b08040 0%, #7a5020 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 12px 4px #c09050;
}
.scn-diningroom-resolution .lampglow {
  position: absolute; bottom: 45%; left: 50%; width: 80px; height: 80px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(192,144,80,.6) 0%, rgba(192,144,80,.15) 50%, transparent 80%);
  border-radius: 50%;
  animation: dr-glow 4s ease-in-out infinite alternate;
}
@keyframes dr-wall {
  0% { opacity: .75; }
  50% { opacity: .9; }
  100% { opacity: .8; }
}
@keyframes dr-holmes {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
}
@keyframes dr-woodley {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes dr-girl {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-1px) rotate(1deg) scale(1.01); }
}
@keyframes dr-glow {
  0% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9); }
  50% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); }
}

/* holmes-legal-argument – calm, dim interior, warm firelight */
.scn-holmes-legal-argument {
  background:
    linear-gradient(180deg, #1c1612 0%, #2e221c 40%, #3f2c24 70%, #4a3428 100%),
    radial-gradient(ellipse at 50% 30%, #5a4030 0%, transparent 60%);
}
.scn-holmes-legal-argument .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #241a14 0%, #2a1e18 100%);
  animation: hla-wall 18s ease-in-out infinite alternate;
}
.scn-holmes-legal-argument .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1e18 100%);
  border-radius: 20% 20% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-holmes-legal-argument .fireplace {
  position: absolute; bottom: 18%; left: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px #2a1a0a;
}
.scn-holmes-legal-argument .fireglow {
  position: absolute; bottom: 22%; left: 18%; width: 40px; height: 50px;
  background: radial-gradient(circle, #c08040 0%, #a06030 40%, transparent 80%);
  border-radius: 50%;
  animation: hla-fire 5s ease-in-out infinite alternate;
}
.scn-holmes-legal-argument .holmes {
  position: absolute; bottom: 20%; left: 38%; width: 32px; height: 90px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0a08 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hla-holmes 7s ease-in-out infinite;
}
.scn-holmes-legal-argument .carruthers {
  position: absolute; bottom: 20%; left: 58%; width: 30px; height: 85px;
  background: linear-gradient(180deg, #1e1814 0%, #100c0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: hla-carruthers 7s ease-in-out infinite;
}
.scn-holmes-legal-argument .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: hla-shadow 12s ease-in-out infinite alternate;
}
@keyframes hla-wall {
  0% { opacity: .8; }
  50% { opacity: .95; }
  100% { opacity: .85; }
}
@keyframes hla-fire {
  0% { opacity: .4; transform: scale(0.9); }
  50% { opacity: .8; transform: scale(1.15); }
  100% { opacity: .5; transform: scale(1); }
}
@keyframes hla-holmes {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(0.5deg) translateY(-1px); }
}
@keyframes hla-carruthers {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-1px) rotate(-0.5deg) translateY(0); }
}
@keyframes hla-shadow {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .55; }
}

/* williamson-protest – tense, dim interior, harsh shadows */
.scn-williamson-protest {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1c16 40%, #3d261e 70%, #4a2c22 100%),
    radial-gradient(ellipse at 60% 40%, #4a2c22 0%, transparent 60%);
}
.scn-williamson-protest .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #221812 0%, #2a1c16 100%);
  animation: wp-wall 14s ease-in-out infinite alternate;
}
.scn-williamson-protest .door {
  position: absolute; bottom: 10%; left: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a2820 0%, #2a1a12 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 10px #1a0e0a;
}
.scn-williamson-protest .williamson {
  position: absolute; bottom: 22%; left: 50%; width: 36px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: wp-williamson 3s ease-in-out infinite alternate;
}
.scn-williamson-protest .hand-pocket {
  position: absolute; bottom: 20%; left: 46%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50%;
  transform-origin: top center;
  animation: wp-hand 2s ease-in-out infinite;
}
.scn-williamson-protest .lamp {
  position: absolute; bottom: 50%; left: 35%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #b08040 0%, #7a5020 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 10px 3px #c09050;
}
.scn-williamson-protest .lampglow {
  position: absolute; bottom: 45%; left: 35%; width: 70px; height: 70px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(192,144,80,.5) 0%, rgba(192,144,80,.1) 50%, transparent 80%);
  border-radius: 50%;
  animation: wp-glow 2.5s ease-in-out infinite alternate;
}
.scn-williamson-protest .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, transparent 100%);
  animation: wp-shadow 8s ease-in-out infinite alternate;
}
@keyframes wp-wall {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes wp-williamson {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes wp-hand {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(15deg) translateY(2px); }
}
@keyframes wp-glow {
  0% { opacity: .4; transform: translate(-50%, -50%) scale(0.9); }
  50% { opacity: .8; transform: translate(-50%, -50%) scale(1.2); }
  100% { opacity: .5; transform: translate(-50%, -50%) scale(1); }
}
@keyframes wp-shadow {
  0% { opacity: .5; }
  50% { opacity: .8; }
  100% { opacity: .6; }
}

/* holmes-warns-carruthers – calm, dim interior, close-up with lamp */
.scn-holmes-warns-carruthers {
  background:
    linear-gradient(180deg, #1c1410 0%, #2e2018 40%, #3f2a20 70%, #4a3024 100%),
    radial-gradient(ellipse at 50% 50%, #4a3024 0%, transparent 65%);
}
.scn-holmes-warns-carruthers .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #241812 0%, #2c1e16 100%);
  animation: hwc-wall 20s ease-in-out infinite alternate;
}
.scn-holmes-warns-carruthers .window {
  position: absolute; top: 15%; right: 20%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at center, #3a2a1a 0%, #1e1410 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 15px #1a0e0a;
}
.scn-holmes-warns-carruthers .holmes {
  position: absolute; bottom: 20%; left: 30%; width: 34px; height: 95px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hwc-holmes 6s ease-in-out infinite;
}
.scn-holmes-warns-carruthers .carruthers {
  position: absolute; bottom: 20%; left: 55%; width: 32px; height: 90px;
  background: linear-gradient(180deg, #1c1612 0%, #0e0a06 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: hwc-carruthers 6s ease-in-out infinite;
}
.scn-holmes-warns-carruthers .lamp {
  position: absolute; bottom: 45%; left: 42%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #b08040 0%, #7a5020 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 14px 5px #c09050;
}
.scn-holmes-warns-carruthers .lampglow {
  position: absolute; bottom: 42%; left: 42%; width: 90px; height: 90px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(192,144,80,.5) 0%, rgba(192,144,80,.1) 50%, transparent 80%);
  border-radius: 50%;
  animation: hwc-glow 4s ease-in-out infinite alternate;
}
.scn-holmes-warns-carruthers .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: hwc-shadow 15s ease-in-out infinite alternate;
}
@keyframes hwc-wall {
  0% { opacity: .8; }
  50% { opacity: .95; }
  100% { opacity: .85; }
}
@keyframes hwc-holmes {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(0.5deg) translateY(-1px); }
}
@keyframes hwc-carruthers {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-1px) rotate(-0.5deg) translateY(0); }
}
@keyframes hwc-glow {
  0% { opacity: .4; transform: translate(-50%, -50%) scale(0.9); }
  50% { opacity: .8; transform: translate(-50%, -50%) scale(1.15); }
  100% { opacity: .5; transform: translate(-50%, -50%) scale(1); }
}
@keyframes hwc-shadow {
  0% { opacity: .4; }
  50% { opacity: .65; }
  100% { opacity: .5; }
}

/* Scene: huxtable-on-father - calm bright interior study */
.scn-huxtable-on-father {
  background: linear-gradient(180deg, #e8ddd0 0%, #c4b5a0 40%, #a89880 100%),
              radial-gradient(circle at 40% 20%, #fff8f0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  min-height: 400px;
}
.scn-huxtable-on-father .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d4c8b8 0%, #b0a090 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-huxtable-on-father .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-huxtable-on-father .window {
  position: absolute; top: 15%; left: 58%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b0d0e8 0%, #8ab8d0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 0 40px rgba(200,220,255,0.3);
  animation: hof-window 6s ease-in-out infinite alternate;
}
.scn-huxtable-on-father .desk {
  position: absolute; bottom: 28%; left: 20%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(10deg);
}
.scn-huxtable-on-father .chair {
  position: absolute; bottom: 26%; left: 22%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: hof-chair 8s ease-in-out infinite;
}
.scn-huxtable-on-father .figure {
  position: absolute; bottom: 26%; left: 24%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hof-figure 5s ease-in-out infinite;
}
.scn-huxtable-on-father .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #d0b060 0%, #a08040 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,160,80,0.6);
  animation: hof-lamp 3s ease-in-out infinite alternate;
}
.scn-huxtable-on-father .letter {
  position: absolute; bottom: 32%; left: 23%; width: 24px; height: 16px;
  background: #f0e8d0;
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hof-letter 7s ease-in-out infinite;
}
@keyframes hof-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(255,255,200,0.3), 0 0 30px rgba(200,220,255,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,200,0.7), 0 0 60px rgba(200,220,255,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255,255,200,0.4), 0 0 40px rgba(200,220,255,0.3); }
}
@keyframes hof-chair {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes hof-figure {
  0% { transform: translateY(0) rotate(-0.5deg); }
  30% { transform: translateY(-1px) rotate(0.5deg); }
  60% { transform: translateY(0) rotate(-0.3deg); }
  100% { transform: translateY(-0.5px) rotate(0.2deg); }
}
@keyframes hof-lamp {
  0% { box-shadow: 0 0 20px 4px rgba(200,160,80,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px rgba(200,160,80,0.8); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(200,160,80,0.5); opacity: 0.9; }
}
@keyframes hof-letter {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}

/* Scene: holmes-final-questions - calm bright drawing room */
.scn-holmes-final-questions {
  background: linear-gradient(180deg, #e0d8c8 0%, #c0b8a8 50%, #a09888 100%),
              radial-gradient(circle at 60% 30%, #fff8f0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  min-height: 400px;
}
.scn-holmes-final-questions .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #d0c8b8 0%, #b8a898 100%);
  border-radius: 0 0 15% 15%;
}
.scn-holmes-final-questions .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-holmes-final-questions .sofa {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: center bottom;
  animation: hfq-sofa 6s ease-in-out infinite;
}
.scn-holmes-final-questions .table {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(5deg);
}
.scn-holmes-final-questions .clock {
  position: absolute; top: 18%; right: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: hfq-clock 12s ease-in-out infinite;
}
.scn-holmes-final-questions .letter {
  position: absolute; bottom: 30%; left: 52%; width: 30px; height: 20px;
  background: #f0e8d0;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hfq-letter 8s ease-in-out infinite alternate;
}
.scn-holmes-final-questions .figure-a {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: hfq-figa 5s ease-in-out infinite;
}
.scn-holmes-final-questions .figure-b {
  position: absolute; bottom: 22%; right: 35%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 35% 35% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hfq-figb 5s ease-in-out infinite 2.5s;
}
@keyframes hfq-sofa {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(0.98); }
}
@keyframes hfq-clock {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  75% { transform: rotate(-2deg); }
}
@keyframes hfq-letter {
  0% { transform: rotate(-10deg) translateY(0); opacity: 0.8; }
  50% { transform: rotate(-5deg) translateY(-3px); opacity: 1; }
  100% { transform: rotate(-10deg) translateY(0); opacity: 0.9; }
}
@keyframes hfq-figa {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-1px) rotate(0.5deg); }
  60% { transform: translateY(0) rotate(-0.5deg); }
  100% { transform: translateY(-0.5px) rotate(1deg); }
}
@keyframes hfq-figb {
  0% { transform: translateY(0) rotate(0.5deg); }
  30% { transform: translateY(-1px) rotate(-0.5deg); }
  60% { transform: translateY(0) rotate(0.8deg); }
  100% { transform: translateY(-0.5px) rotate(-0.3deg); }
}

/* Scene: arriving-at-school - dusk exterior */
.scn-arriving-at-school {
  background: linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 30%, #3a4a6a 60%, #4a5a7a 100%),
              radial-gradient(ellipse at 50% 100%, #6a7a9a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  min-height: 400px;
}
.scn-arriving-at-school .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a1a3a 0%, #1a2a4a 100%);
  animation: as-sky 10s ease-in-out infinite alternate;
}
.scn-arriving-at-school .stars {
  position: absolute; top: 5%; left: 0; right: 0; height: 40%;
  background: radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 50% 15%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 70% 25%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 90% 40%, #fff 0%, transparent 100%);
  background-size: 100% 100%;
  animation: as-stars 20s linear infinite;
}
.scn-arriving-at-school .building {
  position: absolute; bottom: 30%; left: 20%; width: 200px; height: 150px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
}
.scn-arriving-at-school .windows {
  position: absolute; bottom: 38%; left: 25%; width: 20px; height: 24px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 70%);
  border-radius: 4px;
  box-shadow: 0 0 40px 8px rgba(255,200,100,0.6), 0 0 80px 16px rgba(255,200,100,0.3);
  animation: as-windows 4s ease-in-out infinite alternate;
}
.scn-arriving-at-school .gate {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-arriving-at-school .path {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
}
.scn-arriving-at-school .figure {
  position: absolute; bottom: 22%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: as-fig 6s ease-in-out infinite;
}
.scn-arriving-at-school .carriage {
  position: absolute; bottom: 20%; right: 10%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10%;
  animation: as-carr 15s linear infinite;
}
@keyframes as-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes as-stars {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.3; }
}
@keyframes as-windows {
  0% { box-shadow: 0 0 20px 4px rgba(255,200,100,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 12px rgba(255,200,100,0.8); opacity: 1; }
  100% { box-shadow: 0 0 30px 6px rgba(255,200,100,0.5); opacity: 0.9; }
}
@keyframes as-fig {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(0.5deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-0.5deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes as-carr {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-10px) rotate(-2deg); }
  50% { transform: translateX(-20px) rotate(0deg); }
  75% { transform: translateX(-10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* Scene: meeting-the-duke - tense firelit interior */
.scn-meeting-the-duke {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 40%, #3a2a1a 80%, #2a1a0a 100%),
              radial-gradient(circle at 30% 70%, #c05030 0%, transparent 50%);
  position: relative;
  overflow: hidden;
  min-height: 400px;
}
.scn-meeting-the-duke .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 4px 30px rgba(0,0,0,0.7);
}
.scn-meeting-the-duke .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-meeting-the-duke .fireplace {
  position: absolute; bottom: 30%; left: 25%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8), 0 0 20px rgba(200,100,50,0.3);
}
.scn-meeting-the-duke .fire {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 80px;
  background: radial-gradient(circle at bottom, #ff8040 0%, #ff4000 40%, #800000 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: mtd-fire 1.5s ease-in-out infinite alternate;
  box-shadow: 0 0 80px 30px rgba(255,100,0,0.6), 0 0 120px 50px rgba(200,50,0,0.3);
}
.scn-meeting-the-duke .chair {
  position: absolute; bottom: 28%; left: 55%; width: 70px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.6);
  animation: mtd-chair 4s ease-in-out infinite;
}
.scn-meeting-the-duke .table {
  position: absolute; bottom: 30%; left: 60%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-meeting-the-duke .duke {
  position: absolute; bottom: 30%; left: 52%; width: 30px; height: 75px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mtd-duke 3s ease-in-out infinite;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
}
.scn-meeting-the-duke .shadow {
  position: absolute; bottom: 28%; left: 48%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at bottom, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: mtd-shadow 3s ease-in-out infinite alternate;
}
@keyframes mtd-fire {
  0% { transform: scaleY(1) rotate(0deg); opacity: 0.8; }
  25% { transform: scaleY(1.1) rotate(2deg); opacity: 1; }
  50% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.9; }
  75% { transform: scaleY(1.05) rotate(1deg); opacity: 1; }
  100% { transform: scaleY(1) rotate(0deg); opacity: 0.85; }
}
@keyframes mtd-chair {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1.5deg); }
}
@keyframes mtd-duke {
  0% { transform: translateY(0) rotate(-0.5deg); }
  30% { transform: translateY(-1px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-0.5px) rotate(0.5deg); }
}
@keyframes mtd-shadow {
  0% { transform: scaleX(0.8) scaleY(0.5); opacity: 0.5; }
  50% { transform: scaleX(1.1) scaleY(0.7); opacity: 0.8; }
  100% { transform: scaleX(0.9) scaleY(0.6); opacity: 0.6; }
}

.scn-discovering-bike-track { background: linear-gradient(180deg, #7a8a8a 0%, #9aa8a8 40%, #6a7a7a 100%), radial-gradient(ellipse at 50% 100%, #5a6a5a 0%, transparent 70%); }
.scn-discovering-bike-track .sky-dbt { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b0b8b8 0%, #c8d0d0 100%); animation: dbt-sky 12s ease-in-out infinite alternate; }
.scn-discovering-bike-track .moor-dbt { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%); border-radius: 20% 40% 0 0 / 30% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: dbt-moor 18s ease-in-out infinite; }
.scn-discovering-bike-track .path-dbt { position:absolute; bottom:30%; left:25%; width:4px; height:40%; background: #2a2a2a; transform: rotate(10deg); transform-origin: bottom center; border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: dbt-path 8s ease-in-out infinite; }
.scn-discovering-bike-track .morass-dbt { position:absolute; bottom:20%; right:15%; width:80px; height:40px; background: radial-gradient(circle, #3a4a3a 0%, #2a3a2a 70%); border-radius: 50%; filter: blur(6px); opacity: 0.7; animation: dbt-morass 15s ease-in-out infinite alternate; }
.scn-discovering-bike-track .figure-dbt { position:absolute; bottom:28%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.4); animation: dbt-figure 4s ease-in-out infinite; }
.scn-discovering-bike-track .mist-dbt { position:absolute; top:20%; left:10%; width:200px; height:30px; background: linear-gradient(90deg, rgba(200,210,210,.3), rgba(200,210,210,.05)); filter: blur(10px); border-radius: 50%; animation: dbt-mist 40s linear infinite; }

@keyframes dbt-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes dbt-moor { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes dbt-path { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(12deg) scaleY(1.03); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes dbt-morass { 0% { filter: blur(6px) brightness(1); } 50% { filter: blur(8px) brightness(1.1); } 100% { filter: blur(6px) brightness(1); } }
@keyframes dbt-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dbt-mist { 0% { transform: translateX(0); } 100% { transform: translateX(150px); } }

.scn-tracking-dunlop { background: linear-gradient(180deg, #5a5a4a 0%, #6a6a5a 40%, #4a4a3a 100%), radial-gradient(ellipse at 50% 100%, #3a3a2a 0%, transparent 70%); }
.scn-tracking-dunlop .ground-td { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #5a5a4a 0%, #4a4a3a 100%); border-radius: 10% 30% 0 0; }
.scn-tracking-dunlop .track-left-td { position:absolute; bottom:20%; left:30%; width:3px; height:50px; background: repeating-linear-gradient(0deg, #2a2a1a 0px, #2a2a1a 4px, transparent 4px, transparent 8px); border-radius: 1px; transform: rotate(-5deg); animation: td-track 6s ease-in-out infinite; }
.scn-tracking-dunlop .track-right-td { position:absolute; bottom:20%; left:33%; width:3px; height:50px; background: repeating-linear-gradient(0deg, #2a2a1a 0px, #2a2a1a 4px, transparent 4px, transparent 8px); border-radius: 1px; transform: rotate(-2deg); animation: td-track2 6s ease-in-out infinite 1s; }
.scn-tracking-dunlop .boot-td { position:absolute; bottom:15%; left:20%; width:12px; height:8px; background: #3a2a1a; border-radius: 40% 60% 30% 50%; transform: rotate(15deg); box-shadow: 0 0 4px rgba(0,0,0,.5); animation: td-boot 8s ease-in-out infinite; }
.scn-tracking-dunlop .lens-td { position:absolute; bottom:35%; left:15%; width:30px; height:30px; background: radial-gradient(circle, rgba(180,200,200,.6) 0%, rgba(180,200,200,.1) 70%); border-radius: 50%; border: 2px solid #8a8a7a; box-shadow: inset 0 0 6px rgba(255,255,255,.2); animation: td-lens 5s ease-in-out infinite alternate; }
.scn-tracking-dunlop .handle-td { position:absolute; bottom:30%; left:10%; width:20px; height:4px; background: #6a5a4a; border-radius: 2px; transform: rotate(-30deg); animation: td-handle 5s ease-in-out infinite alternate; }
.scn-tracking-dunlop .figure-td { position:absolute; bottom:25%; left:10%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; box-shadow: 2px 0 5px rgba(0,0,0,.4); animation: td-figure 7s ease-in-out infinite; }

@keyframes td-track { 0% { height: 50px; opacity: 0.7; } 50% { height: 55px; opacity: 1; } 100% { height: 50px; opacity: 0.7; } }
@keyframes td-track2 { 0% { height: 50px; opacity: 0.7; } 50% { height: 53px; opacity: 1; } 100% { height: 50px; opacity: 0.7; } }
@keyframes td-boot { 0% { transform: translateX(0) rotate(15deg); } 50% { transform: translateX(5px) rotate(18deg); } 100% { transform: translateX(0) rotate(15deg); } }
@keyframes td-lens { 0% { opacity: 0.6; box-shadow: inset 0 0 6px rgba(255,255,255,.2); } 50% { opacity: 0.9; box-shadow: inset 0 0 12px rgba(255,255,255,.3); } 100% { opacity: 0.7; box-shadow: inset 0 0 6px rgba(255,255,255,.2); } }
@keyframes td-handle { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-25deg); } 100% { transform: rotate(-30deg); } }
@keyframes td-figure { 0% { transform: translateY(0) rotate(10deg); } 50% { transform: translateY(-3px) rotate(12deg); } 100% { transform: translateY(0) rotate(10deg); } }

.scn-tracking-dunlop-back { background: linear-gradient(180deg, #5a5a4a 0%, #6a6a5a 40%, #4a4a3a 100%), radial-gradient(ellipse at 50% 100%, #3a3a2a 0%, transparent 70%); }
.scn-tracking-dunlop-back .ground-tdb { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #5a5a4a 0%, #4a4a3a 100%); border-radius: 10% 30% 0 0; }
.scn-tracking-dunlop-back .track-l-tdb { position:absolute; bottom:20%; right:30%; width:3px; height:50px; background: repeating-linear-gradient(0deg, #2a2a1a 0px, #2a2a1a 4px, transparent 4px, transparent 8px); border-radius: 1px; transform: rotate(5deg); animation: tdb-track 6s ease-in-out infinite; }
.scn-tracking-dunlop-back .track-r-tdb { position:absolute; bottom:20%; right:33%; width:3px; height:50px; background: repeating-linear-gradient(0deg, #2a2a1a 0px, #2a2a1a 4px, transparent 4px, transparent 8px); border-radius: 1px; transform: rotate(2deg); animation: tdb-track2 6s ease-in-out infinite 1s; }
.scn-tracking-dunlop-back .spring-tdb { position:absolute; bottom:25%; right:20%; width:30px; height:40px; background: radial-gradient(circle at 50% 100%, #7a9a9a 0%, transparent 70%); border-radius: 50% 50% 30% 30%; filter: blur(3px); animation: tdb-spring 10s ease-in-out infinite alternate; }
.scn-tracking-dunlop-back .stone1-tdb { position:absolute; bottom:30%; right:25%; width:12px; height:10px; background: #5a4a3a; border-radius: 30% 40% 20% 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tdb-stone 15s linear infinite; }
.scn-tracking-dunlop-back .stone2-tdb { position:absolute; bottom:35%; right:28%; width:8px; height:7px; background: #5a4a3a; border-radius: 40% 30% 50% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tdb-stone2 15s linear infinite 5s; }
.scn-tracking-dunlop-back .figure-tdb { position:absolute; bottom:25%; right:10%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; box-shadow: -2px 0 5px rgba(0,0,0,.4); animation: tdb-figure 7s ease-in-out infinite; }

@keyframes tdb-track { 0% { height: 50px; opacity: 0.7; } 50% { height: 55px; opacity: 1; } 100% { height: 50px; opacity: 0.7; } }
@keyframes tdb-track2 { 0% { height: 50px; opacity: 0.7; } 50% { height: 53px; opacity: 1; } 100% { height: 50px; opacity: 0.7; } }
@keyframes tdb-spring { 0% { transform: scaleY(1); opacity: 0.6; } 50% { transform: scaleY(1.1); opacity: 0.8; } 100% { transform: scaleY(1); opacity: 0.6; } }
@keyframes tdb-stone { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tdb-stone2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tdb-figure { 0% { transform: translateY(0) rotate(10deg); } 50% { transform: translateY(-3px) rotate(12deg); } 100% { transform: translateY(0) rotate(10deg); } }

.scn-holmes-hypothesizes-tire-change { background: linear-gradient(180deg, #8a8a7a 0%, #9a9a8a 40%, #7a7a6a 100%), radial-gradient(ellipse at 50% 100%, #6a6a5a 0%, transparent 70%); }
.scn-holmes-hypothesizes-tire-change .bg-hht { position:absolute; inset:0; background: linear-gradient(135deg, rgba(120,120,110,.3) 0%, transparent 50%, rgba(80,80,70,.3) 100%); animation: hht-bg 20s ease-in-out infinite alternate; }
.scn-holmes-hypothesizes-tire-change .tire-hht { position:absolute; top:20%; left:50%; width:120px; height:120px; transform: translateX(-50%); background: radial-gradient(circle, #4a4a3a 0%, #3a3a2a 60%, #2a2a1a 100%); border-radius: 50%; box-shadow: 0 4px 20px rgba(0,0,0,.5), inset 0 0 20px rgba(0,0,0,.3); animation: hht-tire 12s ease-in-out infinite; }
.scn-holmes-hypothesizes-tire-change .hub-hht { position:absolute; top:50%; left:50%; width:30px; height:30px; transform: translate(-50%, -50%); background: radial-gradient(circle, #7a7a6a 0%, #5a5a4a 100%); border-radius: 50%; box-shadow: inset 0 0 6px rgba(255,255,255,.2); animation: hht-hub 8s linear infinite; }
.scn-holmes-hypothesizes-tire-change .tread1-hht { position:absolute; top:20%; left:50%; width:130px; height:130px; transform: translateX(-50%); border: 2px dashed #6a6a5a; border-radius: 50%; animation: hht-tread1 20s linear infinite; }
.scn-holmes-hypothesizes-tire-change .tread2-hht { position:absolute; top:20%; left:50%; width:110px; height:110px; transform: translateX(-50%); border: 2px dashed #5a5a4a; border-radius: 50%; animation: hht-tread2 25s linear infinite reverse; }
.scn-holmes-hypothesizes-tire-change .hand-hht { position:absolute; bottom:30%; left:30%; width:16px; height:40px; background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 60% 30% 50% / 50% 50% 30% 30%; transform: rotate(20deg); transform-origin: bottom center; box-shadow: 2px 0 6px rgba(0,0,0,.4); animation: hht-hand 6s ease-in-out infinite; }
.scn-holmes-hypothesizes-tire-change .thought1-hht { position:absolute; top:15%; left:20%; width:8px; height:8px; background: #8a8a7a; border-radius: 50%; opacity: 0.6; animation: hht-thought1 4s ease-in-out infinite; }
.scn-holmes-hypothesizes-tire-change .thought2-hht { position:absolute; top:18%; left:14%; width:6px; height:6px; background: #8a8a7a; border-radius: 50%; opacity: 0.4; animation: hht-thought2 5s ease-in-out infinite 1s; }

@keyframes hht-bg { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes hht-tire { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes hht-hub { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes hht-tread1 { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes hht-tread2 { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(-360deg); } }
@keyframes hht-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes hht-thought1 { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.4); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes hht-thought2 { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(1); } }

.scn-holmes-dismisses-bicycle-objection { background: linear-gradient(180deg, #6b5b4f 0%, #4a3b32 100%), radial-gradient(ellipse at 50% 100%, #3a2e25 0%, transparent 70%); }
.scn-holmes-dismisses-bicycle-objection .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #7a6a5f 0%, #4a3b32 100%); }
.scn-holmes-dismisses-bicycle-objection .window { position:absolute; top:8%; left:10%; width:40%; height:35%; background: radial-gradient(ellipse, rgba(200,195,185,0.8) 0%, rgba(180,175,165,0.3) 100%); border-radius:4% 4% 0 0; animation: hdbo-window 8s ease-in-out infinite alternate; }
.scn-holmes-dismisses-bicycle-objection .desk { position:absolute; bottom:18%; left:20%; width:50%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px 2px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-holmes-dismisses-bicycle-objection .holmes-sil { position:absolute; bottom:28%; left:35%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hdbo-holmes 5s ease-in-out infinite; }
.scn-holmes-dismisses-bicycle-objection .bike-wheel { position:absolute; bottom:22%; left:65%; width:28px; height:28px; background: radial-gradient(circle, #2a2a2a 0%, #2a2a2a 6px, transparent 6px, transparent 8px, #2a2a2a 8px, #2a2a2a 12px, transparent 12px); border-radius:50%; box-shadow: inset 0 0 0 2px #4a4a4a; animation: hdbo-wheel 4s ease-in-out infinite; }
.scn-holmes-dismisses-bicycle-objection .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, transparent 0%, #1a1410 100%); animation: hdbo-shadow 10s ease-in-out infinite alternate; }
@keyframes hdbo-window { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes hdbo-holmes { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes hdbo-wheel { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes hdbo-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-gipsy-cap-clue { background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%), radial-gradient(ellipse at 50% 50%, #0a0806 0%, transparent 80%); }
.scn-gipsy-cap-clue .cell-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a3028 0%, #2a221c 100%); }
.scn-gipsy-cap-clue .table { position:absolute; bottom:20%; left:15%; width:70%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-gipsy-cap-clue .cap { position:absolute; bottom:35%; left:40%; width:30px; height:15px; background: radial-gradient(ellipse, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 8px rgba(0,0,0,0.5); animation: gcc-cap 2s ease-in-out infinite; }
.scn-gipsy-cap-clue .lantern { position:absolute; bottom:45%; right:10%; width:8px; height:12px; background: radial-gradient(circle, #e0b060 0%, #806030 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(224,176,96,0.6), 0 0 40px 12px rgba(224,176,96,0.2); animation: gcc-lantern 1.5s steps(2) infinite; }
.scn-gipsy-cap-clue .shadow-cast { position:absolute; bottom:10%; left:20%; width:40%; height:30%; background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 100%); transform: skewX(-20deg); animation: gcc-shadow 3s ease-in-out infinite alternate; }
.scn-gipsy-cap-clue .chain { position:absolute; top:15%; left:50%; width:4px; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:2px; animation: gcc-chain 2s ease-in-out infinite; }
@keyframes gcc-cap { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes gcc-lantern { 0% { opacity:0.8; box-shadow: 0 0 15px 4px rgba(224,176,96,0.4); } 50% { opacity:1; box-shadow: 0 0 25px 8px rgba(224,176,96,0.7); } 100% { opacity:0.8; box-shadow: 0 0 15px 4px rgba(224,176,96,0.4); } }
@keyframes gcc-shadow { 0% { opacity:0.5; transform: skewX(-20deg) translateX(0); } 50% { opacity:0.8; transform: skewX(-20deg) translateX(3px); } 100% { opacity:0.6; transform: skewX(-20deg) translateX(0); } }
@keyframes gcc-chain { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-morning-search-begins { background: linear-gradient(180deg, #ffccaa 0%, #ff9966 30%, #cc7744 100%), radial-gradient(ellipse at 50% 0%, #ffddbb 0%, transparent 80%); }
.scn-morning-search-begins .bedroom-wall { position:absolute; inset:0; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); }
.scn-morning-search-begins .window-frame { position:absolute; top:5%; left:10%; width:60%; height:50%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border: 6px solid #3a2a1a; border-radius:4px 4px 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
.scn-morning-search-begins .dawn-sky { position:absolute; top:7%; left:12%; width:56%; height:46%; background: linear-gradient(180deg, #ffddbb 0%, #ff8844 50%, #cc6622 100%); border-radius:2px; animation: msb-dawn 12s ease-in-out infinite alternate; }
.scn-morning-search-begins .holmes-figure { position:absolute; bottom:20%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewY(-2deg); animation: msb-holmes 4s ease-in-out infinite; }
.scn-morning-search-begins .bed-end { position:absolute; bottom:10%; left:55%; width:30%; height:15%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-morning-search-begins .chair { position:absolute; bottom:12%; left:15%; width:15%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-5deg); animation: msb-chair 6s ease-in-out infinite; }
@keyframes msb-dawn { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes msb-holmes { 0% { transform: skewY(-2deg) translateY(0); } 50% { transform: skewY(-2deg) translateY(-3px) rotate(0.5deg); } 100% { transform: skewY(-2deg) translateY(0); } }
@keyframes msb-chair { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }

.scn-first-disappointment { background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 30%, #2a2a2a 60%, #1a1a1a 100%), radial-gradient(ellipse at 50% 80%, #3a3a3a 0%, transparent 70%); }
.scn-first-disappointment .moor-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a7a7a 0%, #4a4a4a 50%, #2a2a2a 100%); animation: fd-sky 20s ease-in-out infinite alternate; }
.scn-first-disappointment .far-hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.5); animation: fd-hills 15s ease-in-out infinite alternate; }
.scn-first-disappointment .morass { position:absolute; bottom:20%; left:10%; width:80%; height:20%; background: radial-gradient(ellipse, #5a6a5a 0%, #3a4a3a 50%, #1a2a1a 100%); border-radius: 40% 60% 0 0; filter: blur(4px); animation: fd-morass 10s ease-in-out infinite; }
.scn-first-disappointment .figure-left { position:absolute; bottom:26%; left:25%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fd-walk-left 8s linear infinite; }
.scn-first-disappointment .figure-right { position:absolute; bottom:26%; left:45%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fd-walk-right 8s linear infinite; animation-delay: 4s; }
.scn-first-disappointment .path { position:absolute; bottom:24%; left:20%; width:50%; height:2px; background: linear-gradient(90deg, #5a5a4a 0%, transparent 100%); filter: blur(1px); animation: fd-path 12s ease-in-out infinite alternate; }
@keyframes fd-sky { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes fd-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fd-morass { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.02); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes fd-walk-left { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(0deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes fd-walk-right { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(0deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes fd-path { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-holmes-on-burglar { background: linear-gradient(180deg, #8a9a9a 0%, #6a7a7a 30%, #5a6a6a 60%, #4a5a5a 100%), radial-gradient(ellipse at 50% 0%, #9aaaaa 0%, transparent 60%); }
.scn-holmes-on-burglar .sky-overcast { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #9aa5a5 0%, #7a8a8a 50%, #6a7a7a 100%); animation: hob-sky 14s ease-in-out infinite alternate; }
.scn-holmes-on-burglar .field { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a3a 60%, #2a3a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.35); animation: hob-field 16s ease-in-out infinite alternate; }
.scn-holmes-on-burglar .hedge { position:absolute; bottom:28%; left:5%; right:5%; height:18%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 60% 40% 20% 30% / 80% 60% 40% 50%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: hob-hedge 20s ease-in-out infinite; }
.scn-holmes-on-burglar .holmes { position:absolute; bottom:22%; left:28%; width:22px; height:48px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hob-holmes 6s ease-in-out infinite; }
.scn-holmes-on-burglar .holmes::before { content:''; position:absolute; top:-12px; left:2px; width:18px; height:14px; background: #1a1a1a; border-radius: 50% 50% 40% 40%; }
.scn-holmes-on-burglar .burglar { position:absolute; bottom:20%; right:20%; width:16px; height:36px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; opacity:.7; animation: hob-burglar 8s ease-in-out infinite; }
.scn-holmes-on-burglar .window-glow { position:absolute; bottom:30%; left:58%; width:16px; height:20px; background: radial-gradient(circle, #c0c8c0 0%, #8a9a8a 70%); border-radius: 12% 12% 8% 8%; box-shadow: 0 0 20px 6px rgba(138,154,138,.5), 0 0 40px 12px rgba(138,154,138,.25); animation: hob-glow 5s ease-in-out infinite alternate; }
.scn-holmes-on-burglar .cloud-drift { position:absolute; top:12%; left:10%; width:120px; height:16px; background: linear-gradient(180deg, rgba(200,210,210,.6) 0%, rgba(160,170,170,.1) 100%); border-radius:50%; filter: blur(8px); animation: hob-drift 45s linear infinite; }
.scn-holmes-on-burglar .fence { position:absolute; bottom:20%; left:45%; width:4px; height:30px; background: #3a3a2a; border-radius: 10%; box-shadow: 12px 0 #3a3a2a, 24px 0 #3a3a2a, 36px 0 #3a3a2a, -12px 0 #3a3a2a; animation: hob-fence 15s ease-in-out infinite; }
@keyframes hob-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes hob-field { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes hob-hedge { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hob-holmes { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(0) } 75% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hob-burglar { 0% { transform: translateX(0) translateY(0) } 30% { transform: translateX(-3px) translateY(-1px) } 60% { transform: translateX(-6px) translateY(0) } 100% { transform: translateX(0) translateY(0) } }
@keyframes hob-glow { 0% { box-shadow: 0 0 14px 4px rgba(138,154,138,.4), 0 0 28px 8px rgba(138,154,138,.2); opacity:.7 } 50% { box-shadow: 0 0 24px 8px rgba(180,190,180,.6), 0 0 48px 16px rgba(180,190,180,.3); opacity:1 } 100% { box-shadow: 0 0 16px 5px rgba(138,154,138,.45); opacity:.8 } }
@keyframes hob-drift { 0% { transform: translateX(-40px) } 100% { transform: translateX(140vw) } }
@keyframes hob-fence { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-inside-cabin { background: linear-gradient(180deg, #2a2018 0%, #1a1410 30%, #0e0a08 60%, #050302 100%), radial-gradient(ellipse at 50% 70%, #2a2018 0%, transparent 50%); }
.scn-inside-cabin .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2218 0%, #1a1410 50%, #0e0a08 100%); border-bottom: 2px solid #1a1410; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); animation: inc-wall 18s ease-in-out infinite alternate; }
.scn-inside-cabin .floor { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 40%, #050302 100%); box-shadow: inset 0 12px 30px rgba(0,0,0,.7); }
.scn-inside-cabin .table { position:absolute; bottom:12%; left:35%; right:35%; height:4%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: inc-table 14s ease-in-out infinite; }
.scn-inside-cabin .lamp-glow { position:absolute; bottom:45%; left:45%; width:20px; height:24px; background: radial-gradient(circle, #d0a060 0%, #8a6030 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 8px rgba(160,120,60,.5), 0 0 60px 20px rgba(120,80,40,.3), 0 0 100px 40px rgba(80,50,20,.15); animation: inc-lamp 4s ease-in-out infinite alternate; }
.scn-inside-cabin .holmes-figure { position:absolute; bottom:8%; left:42%; width:20px; height:44px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: inc-holmes 7s ease-in-out infinite; }
.scn-inside-cabin .holmes-figure::before { content:''; position:absolute; top:-10px; left:3px; width:14px; height:12px; background: #0a0a0a; border-radius: 50% 50% 40% 40%; }
.scn-inside-cabin .chair { position:absolute; bottom:8%; left:54%; width:18px; height:32px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-inside-cabin .artefact { position:absolute; bottom:16%; left:38%; width:6px; height:8px; background: #4a3a1a; border-radius: 20%; box-shadow: 0 0 6px 2px rgba(60,50,20,.4); animation: inc-artefact 11s ease-in-out infinite; }
.scn-inside-cabin .shadow-sweep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 70%); pointer-events:none; animation: inc-shadow 12s ease-in-out infinite alternate; }
@keyframes inc-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes inc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes inc-lamp { 0% { box-shadow: 0 0 24px 6px rgba(160,120,60,.4), 0 0 48px 14px rgba(120,80,40,.2); opacity:.8 } 50% { box-shadow: 0 0 40px 12px rgba(200,160,80,.6), 0 0 80px 28px rgba(160,120,60,.35); opacity:1 } 100% { box-shadow: 0 0 28px 8px rgba(160,120,60,.45); opacity:.9 } }
@keyframes inc-holmes { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-1px) rotate(3deg) } 60% { transform: translateY(0) rotate(0) } 80% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes inc-artefact { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(1) } }
@keyframes inc-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }

.scn-setting-ambush { background: linear-gradient(180deg, #2a2038 0%, #3a2050 25%, #5a3060 50%, #7a4050 75%, #8a5040 100%), radial-gradient(ellipse at 50% 0%, #4a3060 0%, transparent 60%); }
.scn-setting-ambush .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2038 0%, #4a2850 40%, #6a3850 70%, #8a5040 100%); animation: sam-sky 16s ease-in-out infinite alternate; }
.scn-setting-ambush .ground-dark { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a1820 0%, #0a0a10 50%, #050508 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 15px 40px rgba(0,0,0,.6); }
.scn-setting-ambush .hut-silhouette { position:absolute; bottom:20%; left:35%; right:35%; height:30%; background: linear-gradient(180deg, #0a0a10 0%, #050508 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.7); animation: sam-hut 20s ease-in-out infinite; }
.scn-setting-ambush .hut-silhouette::after { content:''; position:absolute; top:20%; left:40%; width:20%; height:25%; background: #050508; border-radius: 4px; }
.scn-setting-ambush .watcher-one { position:absolute; bottom:10%; left:22%; width:18px; height:40px; background: linear-gradient(180deg, #0a0a10 0%, #050508 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sam-watch1 6s ease-in-out infinite; }
.scn-setting-ambush .watcher-two { position:absolute; bottom:12%; right:24%; width:16px; height:36px; background: linear-gradient(180deg, #0a0a10 0%, #050508 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform-origin: bottom center; animation: sam-watch2 8s ease-in-out infinite 1s; }
.scn-setting-ambush .tree-line { position:absolute; bottom:28%; left:0; right:0; height:20%; background: linear-gradient(180deg, #0a0a10 0%, #050508 100%); border-radius: 70% 30% 40% 50% / 80% 40% 60% 50%; clip-path: polygon(0% 100%, 5% 30%, 10% 100%, 15% 40%, 20% 100%, 25% 25%, 30% 100%, 35% 35%, 40% 100%, 45% 20%, 50% 100%, 55% 30%, 60% 100%, 65% 15%, 70% 100%, 75% 25%, 80% 100%, 85% 35%, 90% 100%, 95% 20%, 100% 100%); animation: sam-trees 30s ease-in-out infinite alternate; }
.scn-setting-ambush .fade-edge { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.6) 100%); pointer-events:none; animation: sam-fade 12s ease-in-out infinite alternate; }
.scn-setting-ambush .door-closed { position:absolute; bottom:20%; left:48%; width:10%; height:28%; background: #0a0a10; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
@keyframes sam-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sam-hut { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes sam-watch1 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(4px) rotate(0) } 75% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sam-watch2 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(-4px) rotate(0) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sam-trees { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes sam-fade { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }

.scn-vigil { background: linear-gradient(180deg, #0a0a14 0%, #101020 30%, #141428 50%, #0e0e1e 75%, #080810 100%), radial-gradient(ellipse at 50% 30%, #1a1a30 0%, transparent 60%); }
.scn-vigil .night-depth { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0a0a18 0%, #141430 40%, #1a1a38 70%, #0e0e20 100%); animation: vig-depth 20s ease-in-out infinite alternate; }
.scn-vigil .pool-reflect { position:absolute; bottom:5%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #0a0a18 0%, #141430 40%, #0e0e20 100%); border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%; box-shadow: inset 0 10px 40px rgba(20,20,50,.5); animation: vig-pool 14s ease-in-out infinite; }
.scn-vigil .pool-reflect::before { content:''; position:absolute; top:10%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, rgba(30,30,60,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: vig-ripple 10s ease-in-out infinite; }
.scn-vigil .figure-crouch { position:absolute; bottom:12%; left:30%; width:22px; height:36px; background: linear-gradient(180deg, #0a0a10 0%, #050508 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vig-crouch 8s ease-in-out infinite; }
.scn-vigil .figure-crouch::before { content:''; position:absolute; top:-8px; left:4px; width:14px; height:10px; background: #050508; border-radius: 50% 50% 40% 40%; }
.scn-vigil .reeds { position:absolute; bottom:8%; left:55%; width:4px; height:40px; background: linear-gradient(180deg, #0a0a10 0%, #050508 100%); border-radius: 20%; box-shadow: 8px 0 #0a0a10, 16px 0 #050508, -6px 4px #0a0a10; transform-origin: bottom center; animation: vig-reeds 12s ease-in-out infinite; }
.scn-vigil .moon-slice { position:absolute; top:15%; right:20%; width:30px; height:30px; background: radial-gradient(circle, rgba(160,180,200,.6) 0%, rgba(100,120,140,.1) 100%); border-radius: 50%; filter: blur(3px); box-shadow: 0 0 30px 10px rgba(120,140,160,.2); animation: vig-moon 9s ease-in-out infinite alternate; }
.scn-vigil .creature-approach { position:absolute; bottom:5%; left:5%; width:40px; height:30px; background: linear-gradient(180deg, #050508 0%, #020204 100%); border-radius: 60% 40% 50% 50% / 70% 50% 50% 30%; opacity:.3; animation: vig-creature 25s ease-in-out infinite; }
.scn-vigil .shadow-drift { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 60%); pointer-events:none; animation: vig-shadow 16s ease-in-out infinite alternate; }
@keyframes vig-depth { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes vig-pool { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes vig-ripple { 0% { transform: scale(1) translateY(0); opacity:.3 } 50% { transform: scale(1.1) translateY(-2px); opacity:.6 } 100% { transform: scale(1) translateY(0); opacity:.3 } }
@keyframes vig-crouch { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(3deg) } 50% { transform: translateX(6px) rotate(0) } 75% { transform: translateX(3px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vig-reeds { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes vig-moon { 0% { box-shadow: 0 0 20px 6px rgba(120,140,160,.15); opacity:.6 } 50% { box-shadow: 0 0 40px 16px rgba(160,180,200,.35); opacity:.9 } 100% { box-shadow: 0 0 25px 8px rgba(120,140,160,.2); opacity:.7 } }
@keyframes vig-creature { 0% { transform: translateX(-60px) scale(.8); opacity:.2 } 30% { transform: translateX(-20px) scale(.95); opacity:.35 } 60% { transform: translateX(10px) scale(1); opacity:.5 } 100% { transform: translateX(40px) scale(1.05); opacity:.3 } }
@keyframes vig-shadow { 0% { opacity:.5 } 50% { opacity:.75 } 100% { opacity:.55 } }

/* holmes-agrees-to-go - calm bright interior */
.scn-holmes-agrees-to-go {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9bf9e 60%), radial-gradient(ellipse at 50% 100%, #c9a67a 0%, transparent 70%);
}
.scn-holmes-agrees-to-go .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d6be 0%, #b08e6a 100%); transform: scale(0.95); border-radius: 4px;
  animation: s1-bg 20s ease-in-out infinite alternate;
}
.scn-holmes-agrees-to-go .window-glow {
  position: absolute; top: 10%; right: 12%; width: 60px; height: 45px; background: linear-gradient(135deg, #fef5e0 0%, #f2dfc0 100%); border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,235,190,0.6);
  animation: s1-window 6s ease-in-out infinite alternate;
}
.scn-holmes-agrees-to-go .hearth-glow {
  position: absolute; bottom: 8%; left: 15%; width: 80px; height: 60px; background: radial-gradient(ellipse, #f5a050 0%, #b05a1a 50%, transparent 75%); border-radius: 30% 30% 10% 10%;
  animation: s1-hearth 4s ease-in-out infinite;
}
.scn-holmes-agrees-to-go .desk {
  position: absolute; bottom: 18%; left: 30%; width: 160px; height: 30px; background: linear-gradient(180deg, #6b4c32 0%, #4f3320 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: s1-desk 12s ease-in-out infinite;
}
.scn-holmes-agrees-to-go .chair {
  position: absolute; bottom: 12%; left: 32%; width: 50px; height: 30px; background: linear-gradient(180deg, #3d2b1a 0%, #1e140a 100%); border-radius: 20% 20% 5% 5%; transform: rotate(-2deg);
  animation: s1-chair 17s ease-in-out infinite;
}
.scn-holmes-agrees-to-go .holmes-fig {
  position: absolute; bottom: 20%; left: 22%; width: 28px; height: 55px; background: linear-gradient(180deg, #2b1f12 0%, #0d0803 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: s1-holmes 7s ease-in-out infinite;
}
.scn-holmes-agrees-to-go .lamp-light {
  position: absolute; bottom: 30%; left: 26%; width: 10px; height: 5px; background: radial-gradient(circle, #ffd580 0%, transparent 80%); box-shadow: 0 0 20px 8px #ffd580, 0 0 40px 15px rgba(255,213,128,0.4);
  animation: s1-lamp 3s ease-in-out infinite alternate;
}
@keyframes s1-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes s1-window { 0% { transform: scale(1); box-shadow: 0 0 20px 5px rgba(255,235,190,0.4); } 50% { transform: scale(1.02); box-shadow: 0 0 40px 15px rgba(255,235,190,0.7); } 100% { transform: scale(0.98); box-shadow: 0 0 25px 8px rgba(255,235,190,0.5); } }
@keyframes s1-hearth { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.95); } }
@keyframes s1-desk { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes s1-chair { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes s1-holmes { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes s1-lamp { 0% { opacity: 0.7; box-shadow: 0 0 15px 5px #ffd580; } 100% { opacity: 1; box-shadow: 0 0 30px 12px #ffd580; } }

/* arrival-at-woodmans-lee - overcast tense landscape */
.scn-arrival-at-woodmans-lee {
  background: linear-gradient(180deg, #8b9ba5 0%, #5f6e78 40%, #3a434b 100%), radial-gradient(ellipse at 50% 0%, #a0b0bd 0%, transparent 60%);
}
.scn-arrival-at-woodmans-lee .overcast-sky {
  position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #7a8b96 0%, #4b5963 100%);
  animation: s2-sky 25s ease-in-out infinite alternate;
}
.scn-arrival-at-woodmans-lee .distant-woods {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2c3a2e 0%, #1a241c 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  animation: s2-woods 35s ease-in-out infinite alternate;
}
.scn-arrival-at-woodmans-lee .near-trees {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #1e2b1d 0%, #0d150c 100%); clip-path: polygon(0% 30%, 10% 0%, 20% 40%, 30% 5%, 40% 45%, 50% 0%, 60% 35%, 70% 10%, 80% 50%, 90% 5%, 100% 35%);
  animation: s2-trees 20s ease-in-out infinite;
}
.scn-arrival-at-woodmans-lee .carriage-sil {
  position: absolute; bottom: 22%; left: 30%; width: 50px; height: 30px; background: #0f120e; border-radius: 10% 10% 25% 25% / 30% 30% 40% 40%; transform: scaleX(3);
  animation: s2-carriage 18s ease-in-out infinite;
}
.scn-arrival-at-woodmans-lee .road {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 4%; background: linear-gradient(180deg, #5a5040 0%, #3f362a 100%); border-radius: 50%;
  animation: s2-road 40s linear infinite;
}
.scn-arrival-at-woodmans-lee .mist {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%; background: linear-gradient(90deg, transparent 0%, rgba(180,190,200,0.2) 30%, rgba(200,210,220,0.1) 70%, transparent 100%); filter: blur(8px);
  animation: s2-mist 12s ease-in-out infinite alternate;
}
.scn-arrival-at-woodmans-lee .tree-trunks {
  position: absolute; bottom: 20%; left: 10%; width: 8px; height: 50px; background: linear-gradient(180deg, #1a1c18 0%, #0a0c08 100%); border-radius: 3px; box-shadow: 25px 0 #1a1c18, 50px 0 #1a1c18, 75px 0 #1a1c18;
  animation: s2-trunks 30s ease-in-out infinite;
}
@keyframes s2-sky { 0% { background-position: 0% 0%; } 50% { background-position: 0% 5%; } 100% { background-position: 0% 0%; } }
@keyframes s2-woods { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes s2-trees { 0% { clip-path: polygon(0% 30%, 10% 0%, 20% 40%, 30% 5%, 40% 45%, 50% 0%, 60% 35%, 70% 10%, 80% 50%, 90% 5%, 100% 35%); } 50% { clip-path: polygon(0% 32%, 10% 2%, 20% 42%, 30% 7%, 40% 47%, 50% 2%, 60% 37%, 70% 12%, 80% 52%, 90% 7%, 100% 37%); } 100% { clip-path: polygon(0% 30%, 10% 0%, 20% 40%, 30% 5%, 40% 45%, 50% 0%, 60% 35%, 70% 10%, 80% 50%, 90% 5%, 100% 35%); } }
@keyframes s2-carriage { 0% { transform: translateX(0) scaleX(3); } 50% { transform: translateX(10px) scaleX(3) translateY(-2px); } 100% { transform: translateX(0) scaleX(3); } }
@keyframes s2-road { 0% { background-position: 0% 0%; } 100% { background-position: -200% 0%; } }
@keyframes s2-mist { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.6; transform: translateX(20px); } 100% { opacity: 0.2; transform: translateX(-10px); } }
@keyframes s2-trunks { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* meeting-the-widow - overcast dark interior */
.scn-meeting-the-widow {
  background: linear-gradient(180deg, #2b2b3a 0%, #15151f 60%), radial-gradient(ellipse at 50% 100%, #1e1e2c 0%, transparent 80%);
}
.scn-meeting-the-widow .dark-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1f1f2e 0%, #0e0e16 100%); transform: scale(0.98); border-radius: 3px;
  animation: s3-wall 30s ease-in-out infinite alternate;
}
.scn-meeting-the-widow .pale-window {
  position: absolute; top: 15%; left: 10%; width: 50px; height: 40px; background: linear-gradient(180deg, #8b9ba8 0%, #55606a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(255,255,255,0.1);
  animation: s3-window 8s ease-in-out infinite alternate;
}
.scn-meeting-the-widow .widow-fig {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 55px; background: linear-gradient(180deg, #23232f 0%, #0b0b11 100%); border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center;
  animation: s3-widow 6s ease-in-out infinite;
}
.scn-meeting-the-widow .shawl {
  position: absolute; bottom: 22%; left: 30%; width: 45px; height: 25px; background: linear-gradient(180deg, #28283a 0%, #12121a 100%); border-radius: 30% 30% 40% 40% / 80% 80% 30% 30%; transform: rotate(-5deg);
  animation: s3-shawl 14s ease-in-out infinite;
}
.scn-meeting-the-widow .shadow-pool {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 15%; background: radial-gradient(ellipse, #0a0a12 0%, transparent 70%); border-radius: 50%;
  animation: s3-shadow 20s ease-in-out infinite alternate;
}
.scn-meeting-the-widow .eye-glow {
  position: absolute; bottom: 38%; left: 41%; width: 4px; height: 2px; background: radial-gradient(circle, #b87878 0%, transparent 80%); box-shadow: 0 0 6px 2px #b87878, 0 0 12px 4px rgba(184,120,120,0.3);
  animation: s3-eyes 3s ease-in-out infinite alternate;
}
.scn-meeting-the-widow .floor-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, #1a1a26 0%, #0d0d14 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: s3-floor 22s ease-in-out infinite;
}
@keyframes s3-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes s3-window { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.03); } 100% { opacity: 0.6; transform: scale(0.97); } }
@keyframes s3-widow { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes s3-shawl { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(3px); } 100% { transform: rotate(-4deg) translateX(0); } }
@keyframes s3-shadow { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes s3-eyes { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes s3-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* examining-hut - overcast tense exterior */
.scn-examining-hut {
  background: linear-gradient(180deg, #6a7a82 0%, #3f4a50 50%, #2a3238 100%), radial-gradient(ellipse at 50% 0%, #80929c 0%, transparent 60%);
}
.scn-examining-hut .overcast-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5b6b73 0%, #3a434a 100%); transform: scale(0.95); border-radius: 5px;
  animation: s4-bg 40s ease-in-out infinite alternate;
}
.scn-examining-hut .hut-wall {
  position: absolute; bottom: 20%; left: 40%; width: 120px; height: 80px; background: linear-gradient(180deg, #5a4c3e 0%, #382c21 100%); border-radius: 4px 4px 6px 6px;
  animation: s4-wall 15s ease-in-out infinite;
}
.scn-examining-hut .hut-roof {
  position: absolute; bottom: 65%; left: 38%; width: 130px; height: 30px; background: linear-gradient(180deg, #4d3f2e 0%, #2c2116 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  animation: s4-roof 20s ease-in-out infinite;
}
.scn-examining-hut .hut-door {
  position: absolute; bottom: 22%; left: 53%; width: 20px; height: 34px; background: linear-gradient(180deg, #3a2b1c 0%, #1c1108 100%); border-radius: 2px 2px 4px 4px;
  animation: s4-door 12s ease-in-out infinite;
}
.scn-examining-hut .hut-window {
  position: absolute; bottom: 45%; left: 42%; width: 16px; height: 14px; background: linear-gradient(135deg, #7a8b96 0%, #4f5d66 100%); border-radius: 2px;
  animation: s4-window 6s ease-in-out infinite alternate;
}
.scn-examining-hut .bending-fig {
  position: absolute; bottom: 18%; left: 50%; width: 22px; height: 40px; background: linear-gradient(180deg, #1c1f24 0%, #080a0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center;
  animation: s4-fig 8s ease-in-out infinite;
}
.scn-examining-hut .key-shape {
  position: absolute; bottom: 22%; left: 47%; width: 6px; height: 10px; background: #8a7b66; border-radius: 2px 2px 4px 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: s4-key 5s ease-in-out infinite;
}
.scn-examining-hut .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2a3a2a 0%, #0e160e 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: s4-grass 22s ease-in-out infinite;
}
@keyframes s4-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s4-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes s4-roof { 0% { transform: skew(0); } 50% { transform: skew(-1deg); } 100% { transform: skew(0); } }
@keyframes s4-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes s4-window { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 0.9; transform: scale(1.04); } }
@keyframes s4-fig { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(3deg) translateY(-2px); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes s4-key { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(15deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes s4-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* evening-walk */
.scn-evening-walk { background: linear-gradient(180deg, #2a1f3a 0%, #5a3a5a 30%, #c86a5a 60%, #e8a060 80%, #f0c080 100%), radial-gradient(ellipse at 50% 100%, #c86a5a 0%, transparent 70%); }
.scn-evening-walk .sky-ew { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1530 0%, #3a2a4a 40%, transparent 100%); animation: ew-sky 15s ease-in-out infinite alternate; }
.scn-evening-walk .moon-ew { position:absolute; top:8%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #f8e8c0 0%, #d8b880 100%); border-radius:50%; box-shadow: 0 0 20px 8px #f8e8c0; animation: ew-moon 20s ease-in-out infinite alternate; }
.scn-evening-walk .street-ew { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; animation: ew-street 8s ease-in-out infinite; }
.scn-evening-walk .building-ew { position:absolute; bottom:35%; left:20%; width:35%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); animation: ew-build 12s ease-in-out infinite alternate; }
.scn-evening-walk .window-ew { position:absolute; bottom:48%; left:32%; width:12px; height:18px; background: radial-gradient(circle, #f8c060 0%, #b08040 70%); border-radius: 10%; box-shadow: 0 0 14px 4px #c08040, 0 0 30px 6px rgba(192,128,64,.3); animation: ew-glow 3s ease-in-out infinite alternate; }
.scn-evening-walk .lamp-ew { position:absolute; bottom:30%; left:55%; width:8px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 10px 4px #e8b060; animation: ew-lamp 4s ease-in-out infinite alternate; }
.scn-evening-walk .figure-ew { position:absolute; bottom:38%; left:45%; width:16px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ew-walk 6s ease-in-out infinite; }
.scn-evening-walk .cloud-ew { position:absolute; top:16%; background: linear-gradient(180deg, rgba(200,180,200,.6) 0%, rgba(200,180,200,.1) 100%); border-radius:50%; filter: blur(6px); animation: ew-drift 40s linear infinite; }
.scn-evening-walk .cloud-a-ew { left:10%; width:90px; height:22px; animation-delay: -12s; }
.scn-evening-walk .cloud-b-ew { left:50%; width:70px; height:16px; animation-direction: reverse; animation-duration: 50s; }
@keyframes ew-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes ew-moon { 0% { transform: translate(0,0) } 50% { transform: translate(5px, -3px) } 100% { transform: translate(-2px,2px) } }
@keyframes ew-street { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ew-build { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ew-glow { 0% { box-shadow: 0 0 10px 2px #b08040; opacity:.8 } 50% { box-shadow: 0 0 22px 8px #f8c060; opacity:1 } 100% { box-shadow: 0 0 14px 3px #b08040; opacity:.85 } }
@keyframes ew-lamp { 0% { transform: scaleY(1); opacity:.7 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(1); opacity:.8 } }
@keyframes ew-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes ew-drift { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }

/* item-tree-worship-book */
.scn-item-tree-worship-book { background: linear-gradient(180deg, #3a2a4a 0%, #6a4a5a 30%, #a06050 60%, #d08060 100%), radial-gradient(ellipse at 30% 70%, #a06050 0%, transparent 60%); }
.scn-item-tree-worship-book .sky-it { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1f3a 0%, #5a3a4a 50%, transparent 100%); animation: it-sky 14s ease-in-out infinite alternate; }
.scn-item-tree-worship-book .ground-it { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 40% 60% 0 0 / 60% 80% 0 0; animation: it-ground 18s ease-in-out infinite alternate; }
.scn-item-tree-worship-book .tree-it { position:absolute; bottom:40%; left:20%; width:120px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); transform-origin: bottom center; animation: it-tree 10s ease-in-out infinite; }
.scn-item-tree-worship-book .man-it { position:absolute; bottom:30%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: it-man 5s ease-in-out infinite; }
.scn-item-tree-worship-book .book-it { position:absolute; bottom:25%; background: linear-gradient(135deg, #5a3a2a 0%, #3a1a1a 100%); border-radius: 10% 20% 10% 20%; width:14px; height:10px; animation: it-book 7s ease-in-out infinite; }
.scn-item-tree-worship-book .book-1-it { left:48%; transform: rotate(-15deg); animation-delay: -2s; }
.scn-item-tree-worship-book .book-2-it { left:53%; transform: rotate(25deg); animation-delay: -4s; }
.scn-item-tree-worship-book .book-3-it { left:60%; transform: rotate(-5deg); animation-delay: -6s; }
.scn-item-tree-worship-book .leaf-it { position:absolute; top:30%; left:30%; width:8px; height:4px; background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 100%); border-radius:50%; filter: blur(1px); animation: it-leaf 8s linear infinite; }
@keyframes it-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes it-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes it-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes it-man { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(4deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes it-book { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes it-leaf { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(30px) rotate(120deg) } 100% { transform: translateY(60px) rotate(240deg) } }

/* observing-house */
.scn-observing-house { background: linear-gradient(180deg, #2a1f3a 0%, #5a3a4a 30%, #a06050 60%, #c08060 100%), radial-gradient(ellipse at 70% 80%, #a06050 0%, transparent 60%); }
.scn-observing-house .sky-oh { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1530 0%, #3a2a4a 40%, transparent 100%); animation: oh-sky 12s ease-in-out infinite alternate; }
.scn-observing-house .house-oh { position:absolute; bottom:25%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: oh-house 9s ease-in-out infinite; }
.scn-observing-house .window-oh { position:absolute; bottom:32%; left:50%; width:16px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 10px rgba(192,128,64,.4); animation: oh-glow 3s ease-in-out infinite alternate; }
.scn-observing-house .man-oh { position:absolute; bottom:20%; left:30%; width:22px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: oh-man 6s ease-in-out infinite; }
.scn-observing-house .book-oh { position:absolute; bottom:18%; left:42%; width:18px; height:12px; background: linear-gradient(135deg, #5a3a2a 0%, #3a1a1a 100%); border-radius: 10% 20% 10% 20%; transform: rotate(-20deg); animation: oh-book 7s ease-in-out infinite; }
.scn-observing-house .ground-oh { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; animation: oh-ground 15s ease-in-out infinite alternate; }
.scn-observing-house .moon-oh { position:absolute; top:12%; left:75%; width:28px; height:28px; background: radial-gradient(circle, #f8e8c0 0%, #d8b880 100%); border-radius:50%; box-shadow: 0 0 20px 8px #f8e8c0; animation: oh-moon 20s ease-in-out infinite alternate; }
@keyframes oh-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes oh-house { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes oh-glow { 0% { box-shadow: 0 0 14px 3px #b08040; opacity:.8 } 50% { box-shadow: 0 0 28px 8px #f8c060; opacity:1 } 100% { box-shadow: 0 0 18px 4px #b08040; opacity:.85 } }
@keyframes oh-man { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes oh-book { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes oh-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes oh-moon { 0% { transform: translate(0,0) } 50% { transform: translate(4px, -2px) } 100% { transform: translate(-1px,1px) } }

/* return-to-study */
.scn-return-to-study { background: linear-gradient(180deg, #c8a060 0%, #e8c080 30%, #f0d8a0 60%, #f8e8c0 100%), radial-gradient(ellipse at 50% 0%, #f8e8c0 0%, transparent 70%); }
.scn-return-to-study .wall-rs { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b89070 0%, #d8b080 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; animation: rs-wall 10s ease-in-out infinite alternate; }
.scn-return-to-study .floor-rs { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; }
.scn-return-to-study .desk-rs { position:absolute; bottom:20%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 -4px 10px rgba(0,0,0,.3); animation: rs-desk 8s ease-in-out infinite; }
.scn-return-to-study .lamp-rs { position:absolute; bottom:35%; left:38%; width:10px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px #f0c060; animation: rs-lamp 4s ease-in-out infinite alternate; }
.scn-return-to-study .bookshelf-rs { position:absolute; bottom:30%; right:10%; width:25%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,.5); animation: rs-shelf 12s ease-in-out infinite alternate; }
.scn-return-to-study .window-rs { position:absolute; top:10%; left:10%; width:25%; height:35%; background: linear-gradient(180deg, #1a1530 0%, #3a2a4a 100%); border-radius: 6% 6% 10% 10%; box-shadow: inset 0 0 20px #4a3a5a; animation: rs-window 15s ease-in-out infinite alternate; }
.scn-return-to-study .figure-rs { position:absolute; bottom:22%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: rs-figure 5s ease-in-out infinite; }
.scn-return-to-study .curtain-rs { position:absolute; top:8%; left:10%; width:26%; height:37%; background: linear-gradient(180deg, #c8a060 0%, #b08040 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; filter: blur(3px); opacity:.6; animation: rs-curtain 7s ease-in-out infinite alternate; }
@keyframes rs-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes rs-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rs-lamp { 0% { box-shadow: 0 0 20px 6px #e8b050; opacity:.8 } 50% { box-shadow: 0 0 40px 14px #f8d080; opacity:1 } 100% { box-shadow: 0 0 25px 8px #e8b050; opacity:.85 } }
@keyframes rs-shelf { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes rs-window { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes rs-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes rs-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }

/* scene: following-dunlop-again */
.scn-following-dunlop-again {
  background: linear-gradient(180deg, #626262 0%, #8a8a8a 40%, #a0a0a0 70%, #888888 100%),
    radial-gradient(ellipse at 50% 0%, #d0d0d0 0%, transparent 70%);
}
.scn-following-dunlop-again .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6e6e6e 0%, #9a9a9a 100%); animation: fd-sky 20s ease-in-out infinite alternate; }
.scn-following-dunlop-again .road { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #3a3a3a 0%, #5a5a5a 30%, #6a6a6a 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; }
.scn-following-dunlop-again .towers { position:absolute; bottom:50%; left:70%; width:80px; height:120px; background: linear-gradient(0deg, #2a2a2a 0%, #3a3a3a 100%); border-radius:10px 10px 0 0; box-shadow: 0 0 10px rgba(0,0,0,0.5); animation: fd-tower 8s ease-in-out infinite; }
.scn-following-dunlop-again .towers::before { content:''; position:absolute; top:0; left:20px; width:20px; height:40px; background: #3a3a3a; border-radius:50% 50% 0 0; box-shadow: 30px 0 0 #3a3a3a; }
.scn-following-dunlop-again .village { position:absolute; bottom:45%; left:15%; width:120px; height:30px; background: linear-gradient(180deg, #4a4a4a 0%, #5a5a5a 100%); border-radius:30% 30% 0 0; filter:blur(0.5px); }
.scn-following-dunlop-again .figure-left { position:absolute; bottom:42%; left:30%; width:12px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom; animation: fd-walk 6s ease-in-out infinite; }
.scn-following-dunlop-again .figure-right { position:absolute; bottom:42%; left:40%; width:12px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom; animation: fd-walk 6s ease-in-out infinite 3s; }
.scn-following-dunlop-again .signpost { position:absolute; bottom:44%; left:60%; width:6px; height:60px; background:#5a4a3a; border-radius:2px; }
.scn-following-dunlop-again .signpost::before { content:''; position:absolute; top:0; left:-20px; width:40px; height:4px; background:#5a4a3a; border-radius:2px; transform:rotate(-20deg); }
.scn-following-dunlop-again .signpost::after { content:''; position:absolute; top:0; left:-15px; width:30px; height:3px; background:#5a4a3a; border-radius:2px; transform:rotate(15deg); }
.scn-following-dunlop-again .fd-cloud-a { position:absolute; top:15%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(200,200,200,0.6) 0%, rgba(200,200,200,0.2) 100%); filter:blur(8px); border-radius:50%; animation: fd-drift 40s linear infinite; }
.scn-following-dunlop-again .fd-cloud-b { position:absolute; top:25%; right:5%; width:70px; height:15px; background: linear-gradient(180deg, rgba(180,180,180,0.5) 0%, rgba(180,180,180,0.15) 100%); filter:blur(6px); border-radius:50%; animation: fd-drift 55s linear infinite reverse; }
@keyframes fd-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fd-tower { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) scaleY(1.02) } }
@keyframes fd-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes fd-drift { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

/* scene: arriving-at-fighting-cock */
.scn-arriving-at-fighting-cock {
  background: linear-gradient(180deg, #505050 0%, #6a6a6a 45%, #787878 100%),
    radial-gradient(ellipse at 50% 0%, #b0b0b0 0%, transparent 60%);
}
.scn-arriving-at-fighting-cock .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5e5e5e 0%, #868686 100%); animation: afc-sky 18s ease-in-out infinite alternate; }
.scn-arriving-at-fighting-cock .inn-wall { position:absolute; bottom:0; left:20%; width:60%; height:75%; background: linear-gradient(0deg, #3a2a22 0%, #4a3a32 40%, #5a4a3e 100%); border-radius:5% 5% 0 0; box-shadow: -6px 0 10px rgba(0,0,0,0.4); }
.scn-arriving-at-fighting-cock .inn-roof { position:absolute; bottom:75%; left:18%; width:64%; height:15%; background: linear-gradient(0deg, #2a1a12 0%, #3a2a1e 100%); clip-path: polygon(5% 100%, 50% 0%, 95% 100%); }
.scn-arriving-at-fighting-cock .inn-door { position:absolute; bottom:20%; left:45%; width:12%; height:40%; background: #2a1a0a; border-radius:20% 20% 0 0; box-shadow: inset 0 0 10px #1a0a00; }
.scn-arriving-at-fighting-cock .cock-sign { position:absolute; bottom:70%; left:48%; width:40px; height:30px; background: linear-gradient(135deg, #5a3a1a 0%, #8a5a2a 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: afc-swing 5s ease-in-out infinite alternate; }
.scn-arriving-at-fighting-cock .cock-sign::after { content:''; position:absolute; top:5px; left:10px; width:15px; height:20px; background: radial-gradient(circle at 30% 40%, #b86a3a 0%, transparent 70%); border-radius:50%; transform:rotate(-20deg); }
.scn-arriving-at-fighting-cock .window { position:absolute; bottom:45%; left:35%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:5px; box-shadow: inset 0 0 8px rgba(0,0,0,0.6); }
.scn-arriving-at-fighting-cock .window::after { content:''; position:absolute; top:5px; left:5px; width:20px; height:30px; background: radial-gradient(circle at 50% 50%, #7a6a5a 0%, transparent 70%); }
.scn-arriving-at-fighting-cock .holmes-figure { position:absolute; bottom:28%; left:42%; width:16px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom; animation: afc-stagger 4s ease-in-out infinite; }
.scn-arriving-at-fighting-cock .watson-figure { position:absolute; bottom:28%; left:46%; width:16px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom; animation: afc-steady 4s ease-in-out infinite; }
.scn-arriving-at-fighting-cock .mist { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(150,150,150,0.4) 0%, transparent 100%); filter:blur(12px); animation: afc-mist 25s ease-in-out infinite alternate; }
@keyframes afc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes afc-swing { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-2px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes afc-stagger { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 30% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(6px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes afc-steady { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(1px) translateY(-1px) } }
@keyframes afc-mist { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

/* scene: negotiating-with-hayes */
.scn-negotiating-with-hayes {
  background: linear-gradient(180deg, #3a302a 0%, #4a3e36 40%, #5a4e46 100%),
    radial-gradient(ellipse at 50% 100%, #2a201a 0%, transparent 70%);
}
.scn-negotiating-with-hayes .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #4a3e36 0%, #3a302a 100%); }
.scn-negotiating-with-hayes .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #2a1e1a 0%, #3a2e26 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.5); }
.scn-negotiating-with-hayes .window { position:absolute; top:15%; left:10%; width:25%; height:40%; background: radial-gradient(circle at 50% 50%, #6a5e56 0%, #3a3028 100%); border:6px solid #2a1e1a; border-radius:5px; }
.scn-negotiating-with-hayes .window::after { content:''; position:absolute; top:5px; left:5px; width:calc(100% - 10px); height:calc(100% - 10px); background: linear-gradient(180deg, rgba(120,110,100,0.3) 0%, transparent 100%); }
.scn-negotiating-with-hayes .fireplace { position:absolute; bottom:25%; left:50%; width:30%; height:40%; background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 100%); border-radius:20px 20px 0 0; transform:translateX(-50%); }
.scn-negotiating-with-hayes .fireplace::before { content:''; position:absolute; bottom:10%; left:10%; width:80%; height:30%; background: radial-gradient(circle at 50% 100%, #c07030 0%, #8a4a2a 40%, transparent 70%); animation: nwh-fire 6s ease-in-out infinite alternate; }
.scn-negotiating-with-hayes .table { position:absolute; bottom:25%; left:15%; width:30%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:5px; transform: perspective(200px) rotateX(20deg); }
.scn-negotiating-with-hayes .chair-hayes { position:absolute; bottom:25%; left:5%; width:20%; height:30%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom; animation: nwh-sit 8s ease-in-out infinite; }
.scn-negotiating-with-hayes .chair-holmes { position:absolute; bottom:25%; left:25%; width:20%; height:30%; background: linear-gradient(180deg, #3a2a20 0%, #2a1a14 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom; animation: nwh-shift 10s ease-in-out infinite; }
.scn-negotiating-with-hayes .board { position:absolute; top:10%; left:35%; width:30%; height:15%; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%); border-radius:5px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform: rotate(2deg); }
.scn-negotiating-with-hayes .candle { position:absolute; top:22%; left:50%; width:4px; height:12px; background:#8a6a3a; border-radius:2px; }
.scn-negotiating-with-hayes .candle::before { content:''; position:absolute; top:-8px; left:-2px; width:8px; height:10px; background: radial-gradient(circle at 50% 50%, #fff0a0 0%, #e0a040 50%, transparent 100%); animation: nwh-flicker 2s ease-in-out infinite alternate; }
@keyframes nwh-fire { 0% { transform: scaleY(1) scaleX(0.9) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.1) scaleX(1) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.95) scaleX(0.95) translateY(0); opacity:0.85 } }
@keyframes nwh-sit { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes nwh-shift { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(-1deg) } 70% { transform: translateY(1px) rotate(1deg) } }
@keyframes nwh-flicker { 0% { transform: scale(1); opacity:0.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.9); opacity:0.8 } }

/* scene: hayes-responds */
.scn-hayes-responds {
  background: linear-gradient(180deg, #3a302a 0%, #4a3e36 40%, #5a4e46 100%),
    radial-gradient(ellipse at 50% 100%, #2a201a 0%, transparent 70%);
}
.scn-hayes-responds .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #4a3e36 0%, #3a302a 100%); }
.scn-hayes-responds .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #2a1e1a 0%, #3a2e26 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.5); }
.scn-hayes-responds .window { position:absolute; top:15%; left:10%; width:25%; height:40%; background: radial-gradient(circle at 50% 50%, #6a5e56 0%, #3a3028 100%); border:6px solid #2a1e1a; border-radius:5px; animation: hr-window 12s ease-in-out infinite alternate; }
.scn-hayes-responds .counter { position:absolute; bottom:25%; left:60%; width:30%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:5px; transform: perspective(100px) rotateX(10deg); box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6); }
.scn-hayes-responds .landlord { position:absolute; bottom:25%; left:65%; width:18px; height:50px; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom; animation: hr-prick 3s ease-in-out infinite; }
.scn-hayes-responds .holmes { position:absolute; bottom:25%; left:30%; width:16px; height:50px; background: linear-gradient(180deg, #3a2a20 0%, #2a1a14 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom; animation: hr-laugh 5s ease-in-out infinite; }
.scn-hayes-responds .watson { position:absolute; bottom:25%; left:20%; width:16px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom; animation: hr-stand 6s ease-in-out infinite; }
.scn-hayes-responds .lantern { position:absolute; top:12%; left:50%; width:8px; height:20px; background: #5a4a3a; border-radius:3px; }
.scn-hayes-responds .lantern::before { content:''; position:absolute; top:-4px; left:-4px; width:16px; height:14px; background: radial-gradient(circle at 50% 50%, #fff0a0 0%, #e0a040 40%, transparent 80%); animation: hr-flick 4s ease-in-out infinite alternate; }
.scn-hayes-responds .board { position:absolute; top:10%; left:35%; width:30%; height:15%; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%); border-radius:5px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform: rotate(-1deg); animation: hr-board 15s ease-in-out infinite; }
@keyframes hr-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hr-prick { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-4px) rotate(3deg) } 70% { transform: translateY(2px) rotate(-2deg) } }
@keyframes hr-laugh { 0%,100% { transform: translateY(0) rotate(0) scale(1) } 20% { transform: translateY(-3px) rotate(5deg) scale(1.02) } 40% { transform: translateY(-1px) rotate(-2deg) scale(1) } 60% { transform: translateY(2px) rotate(3deg) scale(0.98) } }
@keyframes hr-stand { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hr-flick { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }
@keyframes hr-board { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } }

.scn-arrested-man-photo { background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 50%, #2a1a4e 100%), radial-gradient(ellipse at 30% 20%, #4a4a6e 0%, transparent 70%); }
.scn-arrested-man-photo .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0c0c2a 0%, rgba(20,20,40,0) 100%); animation: arp-sky 8s ease-in-out infinite alternate; }
.scn-arrested-man-photo .moon { position:absolute; top:8%; left:28%; width:40px; height:40px; background: radial-gradient(circle, #c0c8d8 0%, #8090b0 60%, #303a5a 100%); border-radius:50%; box-shadow: 0 0 40px 15px #8090b0, 0 0 80px 30px rgba(128,144,176,.3); animation: arp-moon 12s ease-in-out infinite; }
.scn-arrested-man-photo .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 20px #000; }
.scn-arrested-man-photo .prisoner { position:absolute; bottom:10%; left:35%; width:60px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: arp-prisoner 5s ease-in-out infinite; }
.scn-arrested-man-photo .prisoner::before { content:''; position:absolute; top:20%; left:35%; width:20px; height:20px; background: radial-gradient(circle, #7a6a5a 0%, #3a2a1a 70%); border-radius:50%; } /* sallow face area, blurred */
.scn-arrested-man-photo .holmes { position:absolute; bottom:10%; left:52%; width:40px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: arp-holmes 6s ease-in-out infinite; }
.scn-arrested-man-photo .shadow { position:absolute; bottom:8%; left:30%; right:40%; height:10px; background: radial-gradient(ellipse at 50% 0%, #0a0a1a 0%, transparent 100%); animation: arp-shadow 5s ease-in-out infinite alternate; }
.scn-arrested-man-photo .glare { position:absolute; bottom:38%; left:37%; width:8px; height:8px; background: radial-gradient(circle, #ffffff 0%, rgba(200,200,220,.5) 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,255,255,.4); animation: arp-glare 3s ease-in-out infinite; }
@keyframes arp-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes arp-moon { 0% { transform: translate(0,0) scale(1); box-shadow:0 0 40px 15px #8090b0; } 50% { transform: translate(-2px,1px) scale(1.02); box-shadow:0 0 50px 20px #a0aad0; } 100% { transform: translate(1px,-1px) scale(.98); box-shadow:0 0 35px 12px #7080a0; } }
@keyframes arp-prisoner { 0% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(4deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes arp-holmes { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-3px) rotate(-2deg); } 60% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes arp-shadow { 0% { opacity:.4; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.2); } 100% { opacity:.3; transform: scaleX(0.9); } }
@keyframes arp-glare { 0% { opacity:.3; transform: scale(.8); } 50% { opacity:.8; transform: scale(1.3); } 100% { opacity:.5; transform: scale(1); } }

.scn-examine-bust-fragments { background: linear-gradient(180deg, #f0eed0 0%, #d8d0b0 60%, #c0b890 100%), radial-gradient(ellipse at 50% 30%, #f5f0d0 0%, transparent 70%); }
.scn-examine-bust-fragments .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e0d8c0 0%, #c8c0a0 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.1); }
.scn-examine-bust-fragments .table { position:absolute; bottom:0; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #a09070 0%, #807050 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.3); }
.scn-examine-bust-fragments .bust-fragments { position:absolute; border-radius: 20% 30% 10% 40% / 30% 20% 40% 10%; background: linear-gradient(180deg, #c8b890 0%, #a89878 100%); box-shadow: inset 0 2px 4px rgba(0,0,0,.2), 0 4px 6px rgba(0,0,0,.3); }
.scn-examine-bust-fragments .frag-a { bottom:40%; left:30%; width:40px; height:50px; transform: rotate(15deg); animation: ebf-frag 6s ease-in-out infinite; }
.scn-examine-bust-fragments .frag-b { bottom:35%; left:45%; width:30px; height:40px; transform: rotate(-20deg) scale(.8); animation: ebf-frag 6s ease-in-out infinite reverse; animation-delay: 2s; }
.scn-examine-bust-fragments .frag-c { bottom:38%; left:55%; width:35px; height:45px; transform: rotate(40deg) scale(.9); animation: ebf-frag 6s ease-in-out infinite; animation-delay: 4s; }
.scn-examine-bust-fragments .holmes { position:absolute; bottom:10%; left:35%; width:45px; height:100px; background: linear-gradient(180deg, #302820 0%, #1a1510 100%); border-radius: 45% 45% 30% 30% / 55% 55% 40% 40%; transform-origin: bottom center; animation: ebf-holmes 8s ease-in-out infinite; }
.scn-examine-bust-fragments .holmes::after { content:''; position:absolute; bottom:40%; left:30%; width:20px; height:20px; background: radial-gradient(circle, #d0c8b0 0%, #a09880 70%); border-radius:40%; } /* hand examining */
.scn-examine-bust-fragments .window { position:absolute; top:10%; right:8%; width:80px; height:100px; background: linear-gradient(180deg, #f0f4e8 0%, #d8e0d0 100%); border-radius:4px; box-shadow: 0 0 20px rgba(255,255,255,.3); animation: ebf-window 10s ease-in-out infinite alternate; }
.scn-examine-bust-fragments .lamp { position:absolute; top:15%; left:12%; width:30px; height:40px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08030 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 50px 20px rgba(255,208,128,.5), 0 0 80px 30px rgba(255,208,128,.2); animation: ebf-lamp 4s ease-in-out infinite; }
@keyframes ebf-frag { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes ebf-holmes { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-2px) rotate(-1deg); } 60% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ebf-window { 0% { opacity:.8; transform: scale(1); } 50% { opacity:.95; transform: scale(1.02); } 100% { opacity:.85; transform: scale(0.98); } }
@keyframes ebf-lamp { 0% { opacity:.8; box-shadow:0 0 40px 15px rgba(255,208,128,.4); } 50% { opacity:1; box-shadow:0 0 60px 25px rgba(255,208,128,.6); } 100% { opacity:.9; box-shadow:0 0 45px 18px rgba(255,208,128,.5); } }

.scn-introduction-mr-brown { background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a0 60%, #c0b080 100%), radial-gradient(ellipse at 20% 60%, #f5e8d0 0%, transparent 70%); }
.scn-introduction-mr-brown .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8b0 0%, #d8c8a0 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.1); }
.scn-introduction-mr-brown .doorway { position:absolute; bottom:0; left:50%; width:100px; height:150px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); box-shadow: inset 0 0 20px #1a0a00; }
.scn-introduction-mr-brown .figure-brown { position:absolute; bottom:5%; left:48%; width:45px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: imb-brown 6s ease-in-out infinite; }
.scn-introduction-mr-brown .figure-brown::before { content:''; position:absolute; top:10%; left:20%; width:20px; height:20px; background: radial-gradient(circle, #d0b890 0%, #a08870 100%); border-radius:50%; } /* face? only partial */
.scn-introduction-mr-brown .figure-holmes { position:absolute; bottom:5%; left:60%; width:40px; height:85px; background: linear-gradient(180deg, #302820 0%, #1a1510 100%); border-radius: 42% 42% 32% 32% / 50% 50% 40% 40%; transform-origin: bottom center; animation: imb-holmes 7s ease-in-out infinite; }
.scn-introduction-mr-brown .rug { position:absolute; bottom:0; left:30%; right:30%; height:30px; background: linear-gradient(180deg, #c04830 0%, #a03020 100%); border-radius: 50% / 100% 100% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); } /* not red, use rust tone */
.scn-introduction-mr-brown .lamp { position:absolute; top:12%; left:22%; width:25px; height:35px; background: radial-gradient(circle at 50% 30%, #ffe0a0 0%, #d0a050 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 0 30px 10px rgba(255,224,160,.6); animation: imb-lamp 5s ease-in-out infinite; }
.scn-introduction-mr-brown .rug-pattern { position:absolute; bottom:2%; left:35%; right:35%; height:20px; background: repeating-linear-gradient(90deg, #a04830 0px, #a04830 8px, #d05840 8px, #d05840 16px); border-radius: 50% / 100% 100% 0 0; opacity:.6; }
@keyframes imb-brown { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(-1deg); } 60% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes imb-holmes { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(2px) rotate(1deg) scale(1.01); } 50% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes imb-lamp { 0% { opacity:.85; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.9; transform: scale(.98); } }

.scn-cab-to-london { background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 60%, #050510 100%), radial-gradient(ellipse at 80% 20%, #2a2a4e 0%, transparent 70%); }
.scn-cab-to-london .interior { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2e 0%, #0e0e1a 100%); box-shadow: inset 0 0 50px rgba(0,0,0,.8); }
.scn-cab-to-london .window { position:absolute; top:10%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #2a3a4e 0%, #0a1a2e 100%); border-radius: 4px; border: 3px solid #1a1a2a; box-shadow: 0 0 20px rgba(0,0,0,.5); overflow: hidden; }
.scn-cab-to-london .light-streak { position:absolute; top:20%; left:15%; width:8px; height:60px; background: linear-gradient(180deg, #ffd080 0%, rgba(255,208,128,0) 100%); border-radius: 50%; filter: blur(3px); animation: ctl-streak 3s linear infinite; }
.scn-cab-to-london .seat { position:absolute; bottom:0; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px #000; }
.scn-cab-to-london .seat.shadow-bottom { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #000 100%); opacity:.5; }
.scn-cab-to-london .prisoner { position:absolute; bottom:10%; left:35%; width:50px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 45% 45% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ctl-prisoner 4s ease-in-out infinite; }
.scn-cab-to-london .prisoner::before { content:''; position:absolute; top:15%; left:30%; width:20px; height:25px; background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%); border-radius:40%; filter: blur(2px); } /* matted hair */
.scn-cab-to-london .lestrade { position:absolute; bottom:10%; left:52%; width:35px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ctl-lestrade 5s ease-in-out infinite; }
.scn-cab-to-london .holmes { position:absolute; bottom:10%; left:62%; width:35px; height:75px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ctl-holmes 6s ease-in-out infinite; }
@keyframes ctl-streak { 0% { transform: translateY(0) rotate(0); opacity:0; } 10% { opacity:.8; } 90% { opacity:.8; } 100% { transform: translateY(-100px) rotate(10deg); opacity:0; } }
@keyframes ctl-prisoner { 0% { transform: rotate(1deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 50% { transform: rotate(3deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ctl-lestrade { 0% { transform: translateX(0); } 40% { transform: translateX(-2px) rotate(-1deg); } 70% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes ctl-holmes { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(1px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0); } }

/* confusing-evidence */
.scn-confusing-evidence {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0e06 50%, #0f0804 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a10 0%, transparent 70%);
}
.scn-confusing-evidence .ce-room { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 80%); }
.scn-confusing-evidence .ce-desk { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); }
.scn-confusing-evidence .ce-paper { position:absolute; bottom:15%; left:30%; width:50px; height:40px; background: repeating-linear-gradient(90deg, #e8dcc0 0px, #e8dcc0 2px, #f5eee0 2px, #f5eee0 4px); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ce-paper 6s ease-in-out infinite; }
.scn-confusing-evidence .ce-candle { position:absolute; bottom:20%; left:25%; width:8px; height:30px; background: linear-gradient(180deg, #f0d090 0%, #c8a060 60%, #604020 100%); border-radius: 2px; animation: ce-candle 3s ease-in-out infinite alternate; }
.scn-confusing-evidence .ce-candle::after { content:''; position:absolute; top:-10px; left:-4px; width:16px; height:12px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); animation: ce-flame 1s ease-in-out infinite; }
.scn-confusing-evidence .ce-chair { position:absolute; bottom:12%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a04 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ce-chair 8s ease-in-out infinite; }
.scn-confusing-evidence .ce-shadow { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: ce-shadow 12s ease-in-out infinite; }
@keyframes ce-paper { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes ce-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.85; } }
@keyframes ce-flame { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(0.8); filter: blur(1px); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ce-chair { 0% { transform: rotate(0deg); } 25% { transform: rotate(-1deg) translateY(-1px); } 75% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes ce-shadow { 0% { opacity:0.7; transform: scaleX(1); } 50% { opacity:0.9; transform: scaleX(1.1); } 100% { opacity:0.7; transform: scaleX(1); } }

/* window-impossible */
.scn-window-impossible {
  background: 
    linear-gradient(180deg, #0c1440 0%, #1a2860 40%, #2a3a7a 70%, #3a4a8a 100%),
    radial-gradient(ellipse at 80% 20%, #a0b0d0 0%, transparent 60%);
}
.scn-window-impossible .wi-sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,30,80,0.4) 0%, transparent 60%); }
.scn-window-impossible .wi-moon { position:absolute; top:8%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #f0f4ff 0%, #d0e0f0 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,220,255,.5); animation: wi-moon 30s linear infinite alternate; }
.scn-window-impossible .wi-frame { position:absolute; top:15%; left:10%; width:120px; height:160px; border: 6px solid #2a3a4a; border-radius: 4px; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-window-impossible .wi-glass { position:absolute; top:15%; left:10%; width:120px; height:160px; background: linear-gradient(180deg, rgba(100,150,200,0.2) 0%, rgba(200,230,255,0.1) 50%, rgba(50,80,120,0.2) 100%); border-radius: 4px; animation: wi-glass 8s ease-in-out infinite alternate; }
.scn-window-impossible .wi-crocus { position:absolute; bottom:25%; left:20%; right:20%; height:30px; background: repeating-radial-gradient(circle at 20% 50%, #d080b0 0%, #d080b0 8px, transparent 8px); animation: wi-crocus 6s ease-in-out infinite; }
.scn-window-impossible .wi-grass { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-window-impossible .wi-figure { position:absolute; top:30%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wi-figure 12s ease-in-out infinite; }
@keyframes wi-moon { 0% { transform: translateX(0px) scale(1); opacity:0.9; } 50% { transform: translateX(10px) scale(1.02); opacity:1; } 100% { transform: translateX(0px) scale(1); opacity:0.9; } }
@keyframes wi-glass { 0% { transform: skewX(0deg); opacity:0.6; } 50% { transform: skewX(2deg); opacity:0.8; } 100% { transform: skewX(0deg); opacity:0.6; } }
@keyframes wi-crocus { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(0.9); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes wi-figure { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) translateY(-2px) scaleY(1.02); } 100% { transform: rotate(0deg) scaleY(1); } }

/* mystery-deepens */
.scn-mystery-deepens {
  background: 
    linear-gradient(180deg, #0e0a1a 0%, #1a1430 30%, #2a2040 60%, #1a1020 100%),
    radial-gradient(ellipse at 30% 90%, #4a3a5a 0%, transparent 70%);
}
.scn-mystery-deepens .md-street { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1420 0%, #0e0a10 100%); border-radius: 0; }
.scn-mystery-deepens .md-lamp { position:absolute; bottom:40%; left:20%; width:6px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; }
.scn-mystery-deepens .md-glow { position:absolute; bottom:35%; left:18%; width:60px; height:60px; background: radial-gradient(circle, #f0c050 0%, #c09030 30%, transparent 70%); border-radius:50%; animation: md-glow 2s ease-in-out infinite alternate; }
.scn-mystery-deepens .md-window { position:absolute; top:15%; right:15%; width:80px; height:100px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%); border-radius: 4px; box-shadow: 0 0 30px 10px rgba(240,200,100,.3); animation: md-window 4s ease-in-out infinite; }
.scn-mystery-deepens .md-shooter { position:absolute; bottom:25%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #0a0a14 0%, #14141e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: md-shooter 10s ease-in-out infinite; }
.scn-mystery-deepens .md-cab { position:absolute; bottom:18%; right:10%; width:80px; height:40px; background: linear-gradient(180deg, #1a1420 0%, #0e0a10 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: md-cab 15s ease-in-out infinite; }
@keyframes md-glow { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes md-window { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.02); opacity:1; } 100% { transform: scaleY(1); opacity:0.9; } }
@keyframes md-shooter { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-3deg) translateX(2px); } 75% { transform: rotate(3deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes md-cab { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* motive-absence */
.scn-motive-absence {
  background: 
    linear-gradient(180deg, #f0f4e0 0%, #e0e8d0 30%, #c0d0b0 60%, #a0b090 100%),
    radial-gradient(ellipse at 60% 30%, #fff0c0 0%, transparent 60%);
}
.scn-motive-absence .ma-room { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,240,0.3) 0%, transparent 70%); }
.scn-motive-absence .ma-beam { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 80%); transform: skewX(-10deg); animation: ma-beam 20s ease-in-out infinite alternate; }
.scn-motive-absence .ma-desk { position:absolute; bottom:12%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #b88860 0%, #8a6040 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.1); }
.scn-motive-absence .ma-safe { position:absolute; bottom:15%; left:35%; width:80px; height:60px; background: linear-gradient(180deg, #808890 0%, #606870 100%); border-radius: 6px; border: 2px solid #505860; box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: ma-safe 12s ease-in-out infinite; }
.scn-motive-absence .ma-coins { position:absolute; bottom:20%; left:48%; width:30px; height:10px; background: radial-gradient(circle, #f0e080 0%, #c8a040 100%); border-radius: 20%; box-shadow: 0 0 8px 2px rgba(240,200,100,.4); animation: ma-coins 4s ease-in-out infinite alternate; }
.scn-motive-absence .ma-portrait { position:absolute; top:20%; left:40%; width:50px; height:70px; background: linear-gradient(180deg, #d0c8b0 0%, #b0a890 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; border: 3px solid #8a7a60; box-shadow: 0 4px 12px rgba(0,0,0,.15); animation: ma-portrait 8s ease-in-out infinite; }
@keyframes ma-beam { 0% { transform: skewX(-10deg) translateX(0); opacity:0.5; } 50% { transform: skewX(-8deg) translateX(5px); opacity:0.8; } 100% { transform: skewX(-10deg) translateX(0); opacity:0.5; } }
@keyframes ma-safe { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ma-coins { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes ma-portrait { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(1deg) scale(1.01); } 100% { transform: rotate(0deg) scale(1); } }

/* ----- scene: temptation ----- */
.scn-temptation { 
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 100%), radial-gradient(ellipse at 50% 70%, #e8d8b0 0%, transparent 80%);
}
.scn-temptation .wall { position:absolute; inset:0; background: linear-gradient(180deg, rgba(245,230,208,.7) 0%, transparent 60%); }
.scn-temptation .desk { position:absolute; bottom:10%; left:10%; right:30%; height:35%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-temptation .chair { position:absolute; bottom:12%; left:8%; width:30%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30%; }
.scn-temptation .figure { position:absolute; bottom:22%; left:15%; width:16%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 35% 35%; transform-origin: bottom center; animation: tempt-figure 4s ease-in-out infinite; }
.scn-temptation .proofs { position:absolute; bottom:20%; left:25%; width:20%; height:8%; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tempt-proofs 6s ease-in-out infinite; }
.scn-temptation .lamp { position:absolute; top:5%; left:40%; width:10%; height:20%; background: linear-gradient(180deg, #e0c080 0%, #b08050 100%); border-radius: 50% 50% 0 0; clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%); animation: tempt-lamp 3s ease-in-out infinite alternate; }
.scn-temptation .glow { position:absolute; top:2%; left:35%; width:30%; height:30%; background: radial-gradient(circle, rgba(255,230,150,.8) 0%, transparent 70%); filter: blur(6px); animation: tempt-glow 3s ease-in-out infinite alternate; }
@keyframes tempt-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tempt-proofs { 0%,100% { opacity: .8; } 50% { opacity: 1; transform: rotate(1deg); } }
@keyframes tempt-lamp { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: .8; transform: scaleY(1); } }
@keyframes tempt-glow { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .7; transform: scale(1); } }

/* ----- scene: gloves-and-shoes ----- */
.scn-gloves-and-shoes { 
  background: linear-gradient(135deg, #f0dcc0 0%, #c8b090 100%), radial-gradient(circle at 80% 20%, #d8b898 0%, transparent 70%);
}
.scn-gloves-and-shoes .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); }
.scn-gloves-and-shoes .desk { position:absolute; bottom:10%; left:10%; right:30%; height:40%; background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); border-radius: 4px; }
.scn-gloves-and-shoes .chair { position:absolute; bottom:12%; left:5%; width:25%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30%; }
.scn-gloves-and-shoes .figure { position:absolute; bottom:22%; left:12%; width:18%; height:38%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 35% 35%; transform-origin: center bottom; animation: gloves-figure 5s ease-in-out infinite; }
.scn-gloves-and-shoes .gloves { position:absolute; bottom:40%; left:2%; width:10%; height:8%; background: linear-gradient(180deg, #d0b0a0 0%, #907060 100%); border-radius: 30% 30% 20% 20%; animation: gloves-gloves 4s ease-in-out infinite; }
.scn-gloves-and-shoes .proofs { position:absolute; bottom:20%; left:25%; width:18%; height:6%; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px; animation: gloves-proofs 7s ease-in-out infinite; }
.scn-gloves-and-shoes .door { position:absolute; top:5%; right:5%; width:15%; height:90%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 10px 10px 0; transform-origin: left center; animation: gloves-door 8s ease-in-out infinite; }
.scn-gloves-and-shoes .tutor-shadow { position:absolute; top:10%; right:5%; width:10%; height:80%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(2px); animation: gloves-shadow 8s ease-in-out infinite; }
@keyframes gloves-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gloves-gloves { 0%,100% { transform: translateY(0) rotate(0deg); opacity: .8; } 50% { transform: translateY(-3px) rotate(10deg); opacity: 1; } }
@keyframes gloves-proofs { 0%,100% { opacity: .8; } 50% { opacity: 1; transform: scale(1.02); } }
@keyframes gloves-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 70% { transform: scaleX(1.1); } }
@keyframes gloves-shadow { 0%,100% { opacity: .3; transform: translateX(0); } 50% { opacity: .8; transform: translateX(-10px); } }

/* ----- scene: proof-of-shoes ----- */
.scn-proof-of-shoes { 
  background: linear-gradient(180deg, #9ac8e0 0%, #b8d8e8 50%, #c8e0f0 100%), radial-gradient(ellipse at 50% 100%, #7aa0c0 0%, transparent 80%);
}
.scn-proof-of-shoes .sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, transparent 100%); animation: proof-sky 15s ease-in-out infinite alternate; }
.scn-proof-of-shoes .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); }
.scn-proof-of-shoes .pit { position:absolute; bottom:5%; left:30%; width:50%; height:30%; background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #5a4a3a 100%); border-radius: 50%; animation: proof-pit 10s ease-in-out infinite; }
.scn-proof-of-shoes .clay-layer { position:absolute; bottom:5%; left:30%; width:50%; height:15%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: proof-clay 12s ease-in-out infinite alternate; }
.scn-proof-of-shoes .sawdust-layer { position:absolute; bottom:15%; left:30%; width:50%; height:10%; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 50%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: proof-sawdust 8s ease-in-out infinite alternate; }
.scn-proof-of-shoes .shoe-print { position:absolute; bottom:14%; left:42%; width:10%; height:8%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-15deg); animation: proof-print 6s ease-in-out infinite; }
.scn-proof-of-shoes .specimen { position:absolute; bottom:30%; left:20%; width:8%; height:12%; background: linear-gradient(180deg, #c0e0f0 0%, #80a0b0 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 8px rgba(192,224,240,.5); animation: proof-specimen 4s ease-in-out infinite alternate; }
@keyframes proof-sky { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes proof-pit { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes proof-clay { 0% { opacity: .8; } 100% { opacity: 1; } }
@keyframes proof-sawdust { 0% { opacity: .7; transform: translateY(0); } 100% { opacity: 1; transform: translateY(-2px); } }
@keyframes proof-print { 0%,100% { opacity: .6; transform: rotate(-15deg) translateY(0); } 50% { opacity: 1; transform: rotate(-15deg) translateY(-2px); } }
@keyframes proof-specimen { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* ----- scene: gilchrist-confesses ----- */
.scn-gilchrist-confesses { 
  background: linear-gradient(180deg, #e8dcc8 0%, #c0b0a0 100%), radial-gradient(circle at 40% 30%, #d0b898 0%, transparent 70%);
}
.scn-gilchrist-confesses .wall { position:absolute; inset:0; background: linear-gradient(135deg, rgba(200,180,160,.5) 0%, transparent 60%); }
.scn-gilchrist-confesses .desk { position:absolute; bottom:10%; left:10%; right:20%; height:35%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-gilchrist-confesses .chair { position:absolute; bottom:12%; left:12%; width:20%; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30%; }
.scn-gilchrist-confesses .teacher { position:absolute; bottom:22%; left:15%; width:15%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 35% 35%; transform-origin: bottom center; animation: confess-teacher 6s ease-in-out infinite; }
.scn-gilchrist-confesses .student { position:absolute; bottom:15%; right:15%; width:12%; height:45%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 40% 40% 35% 35%; transform-origin: bottom center; animation: confess-student 4s ease-in-out infinite alternate; }
.scn-gilchrist-confesses .letter { position:absolute; bottom:40%; right:18%; width:8%; height:12%; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: confess-letter 3s ease-in-out infinite alternate; }
.scn-gilchrist-confesses .lamp { position:absolute; top:5%; left:35%; width:8%; height:15%; background: linear-gradient(180deg, #e0c080 0%, #b08050 100%); border-radius: 50% 50% 0 0; clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%); animation: confess-lamp 2s ease-in-out infinite alternate; }
.scn-gilchrist-confesses .shadow { position:absolute; bottom:15%; right:10%; width:18%; height:50%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); filter: blur(4px); animation: confess-shadow 5s ease-in-out infinite alternate; }
@keyframes confess-teacher { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } }
@keyframes confess-student { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes confess-letter { 0% { transform: translateY(0) rotate(0deg); opacity: .8; } 50% { transform: translateY(-3px) rotate(5deg); opacity: 1; } 100% { transform: translateY(0) rotate(0deg); opacity: .9; } }
@keyframes confess-lamp { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.08); } 100% { opacity: .8; transform: scaleY(1); } }
@keyframes confess-shadow { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .7; transform: scaleX(1.1); } 100% { opacity: .4; transform: scaleX(1); } }

/* ===== security-of-grounds (calm, bright interior) ===== */
.scn-security-of-grounds {
  background:
    linear-gradient(180deg, #f5edd1 0%, #e6d4a8 40%, #c8b68a 100%),
    radial-gradient(ellipse at 30% 60%, #fdf4de 0%, transparent 70%);
}
.scn-security-of-grounds .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e6cc 0%, #d9c9a6 100%);
  box-shadow: inset 0 0 60px rgba(120,90,50,0.15);
}
.scn-security-of-grounds .window {
  position: absolute; left: 30%; top: 10%; width: 40%; height: 45%;
  background: linear-gradient(135deg, #e1f0f5 0%, #bddde8 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,150,180,0.3), 0 8px 16px rgba(0,0,0,0.1);
  animation: sg-window 8s ease-in-out infinite alternate;
}
.scn-security-of-grounds .tree {
  position: absolute; left: 35%; bottom: 30%; width: 30%; height: 40%;
  background: radial-gradient(ellipse 60% 80% at 50% 100%, #3a5a2a 0%, #2a4a1a 60%, transparent 100%);
  filter: blur(1px);
  animation: sg-tree 12s ease-in-out infinite;
}
.scn-security-of-grounds .figure {
  position: absolute; left: 50%; bottom: 16%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sg-figure 6s ease-in-out infinite;
}
.scn-security-of-grounds .chair {
  position: absolute; left: 48%; bottom: 10%; width: 36px; height: 28px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 8% 8% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: translateX(-50%);
}
.scn-security-of-grounds .lamp {
  position: absolute; left: 20%; bottom: 20%; width: 10px; height: 16px;
  background: radial-gradient(circle, #ffe8a0 0%, #c8a060 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px #d4a860, 0 0 60px 20px rgba(200,160,90,0.3);
  animation: sg-lamp 3s ease-in-out infinite alternate;
}
.scn-security-of-grounds .curtain {
  position: absolute; left: 28%; top: 12%; width: 12px; height: 35%;
  background: linear-gradient(180deg, #b88868 0%, #8a6048 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top;
  animation: sg-curtain 7s ease-in-out infinite alternate;
}
@keyframes sg-window {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes sg-tree {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sg-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes sg-lamp {
  0% { box-shadow: 0 0 20px 4px #d4a860, 0 0 40px 10px rgba(200,160,90,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 35px 10px #ffe080, 0 0 70px 20px rgba(255,224,128,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #d4a860, 0 0 50px 12px rgba(200,160,90,0.3); opacity: 0.9; }
}
@keyframes sg-curtain {
  0% { transform: rotate(-2deg); }
  100% { transform: rotate(4deg); }
}

/* ===== susan-tarlton-evidence (tense, bright interior) ===== */
.scn-susan-tarlton-evidence {
  background:
    linear-gradient(180deg, #f0edd8 0%, #d4c9a8 50%, #b8a888 100%),
    radial-gradient(ellipse at 60% 50%, #fff8e0 0%, transparent 60%);
}
.scn-susan-tarlton-evidence .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8ddc0 0%, #c8b898 100%);
}
.scn-susan-tarlton-evidence .window {
  position: absolute; left: 10%; top: 5%; width: 40%; height: 50%;
  background: linear-gradient(135deg, #f0f8ff 0%, #c8e0f0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(120,180,220,0.2);
}
.scn-susan-tarlton-evidence .curtain {
  position: absolute; left: 8%; top: 7%; width: 14%; height: 45%;
  background: linear-gradient(90deg, #d0a878 0%, #b88858 40%, #a07050 100%);
  border-radius: 0 0 30% 30%;
  transform-origin: top;
  animation: ste-curtain 2s ease-in-out infinite alternate;
}
.scn-susan-tarlton-evidence .figure {
  position: absolute; left: 35%; bottom: 20%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a28 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: translateX(-50%);
  animation: ste-figure 3s ease-in-out infinite;
}
.scn-susan-tarlton-evidence .stool {
  position: absolute; left: 35%; bottom: 12%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2818 100%);
  border-radius: 4px 4px 0 0;
  transform: translateX(-50%);
}
.scn-susan-tarlton-evidence .shadow {
  position: absolute; left: 25%; bottom: 0; width: 30%; height: 25%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: ste-shadow 4s ease-in-out infinite alternate;
}
.scn-susan-tarlton-evidence .sunbeam {
  position: absolute; left: 12%; top: 10%; width: 60%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,240,0.4) 0%, transparent 100%);
  mix-blend-mode: overlay;
  animation: ste-beam 5s ease-in-out infinite alternate;
}
@keyframes ste-curtain {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-6deg); }
}
@keyframes ste-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(3deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(4deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes ste-shadow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes ste-beam {
  0% { opacity: 0.3; transform: translate(-5px, -5px); }
  100% { opacity: 0.7; transform: translate(5px, 5px); }
}

/* ===== smith-goes-down (calm, bright interior) ===== */
.scn-smith-goes-down {
  background:
    linear-gradient(180deg, #f2e6d0 0%, #dcc8a8 60%, #b8a080 100%),
    radial-gradient(ellipse at 70% 80%, #fcf0d8 0%, transparent 80%);
}
.scn-smith-goes-down .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8dcc4 0%, #d0b898 100%);
}
.scn-smith-goes-down .staircase {
  position: absolute; left: 40%; bottom: 0; width: 30%; height: 70%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4028 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.2);
  animation: sgd-stairs 12s ease-in-out infinite alternate;
}
.scn-smith-goes-down .door {
  position: absolute; left: 48%; bottom: 10%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2820 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  transform: translateX(-50%);
  animation: sgd-door 10s ease-in-out infinite;
}
.scn-smith-goes-down .window {
  position: absolute; right: 15%; top: 10%; width: 25%; height: 35%;
  background: linear-gradient(135deg, #d0eaf0 0%, #a0c8d8 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(80,140,180,0.2);
}
.scn-smith-goes-down .bookshelf {
  position: absolute; right: 10%; top: 50%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #5a4030 0%, #38281a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.scn-smith-goes-down .lamp {
  position: absolute; left: 30%; bottom: 50%; width: 8px; height: 14px;
  background: radial-gradient(circle, #ffe4a0 0%, #c8a060 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #c8a060, 0 0 40px 12px rgba(200,160,96,0.3);
  animation: sgd-lamp 4s ease-in-out infinite alternate;
}
.scn-smith-goes-down .carpet {
  position: absolute; left: 25%; bottom: 0; width: 50%; height: 12%;
  background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 50%, #8a6a4a 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(2px);
  animation: sgd-carpet 8s ease-in-out infinite alternate;
}
@keyframes sgd-stairs {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes sgd-door {
  0% { transform: translateX(-50%) rotateY(0deg); }
  25% { transform: translateX(-50%) rotateY(2deg); }
  75% { transform: translateX(-50%) rotateY(-1deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes sgd-lamp {
  0% { box-shadow: 0 0 15px 4px #c8a060, 0 0 30px 8px rgba(200,160,96,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 25px 8px #ffe4a0, 0 0 50px 16px rgba(255,228,160,0.4); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #c8a060, 0 0 35px 10px rgba(200,160,96,0.3); opacity: 0.8; }
}
@keyframes sgd-carpet {
  0% { transform: scaleX(1); opacity: 0.9; }
  100% { transform: scaleX(1.03); opacity: 1; }
}

/* ===== maid-finds-body (tense, bright interior) ===== */
.scn-maid-finds-body {
  background:
    linear-gradient(180deg, #f0e6cc 0%, #d8c8a8 50%, #b8a080 100%),
    radial-gradient(ellipse at 40% 60%, #fff8e8 0%, transparent 70%);
}
.scn-maid-finds-body .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b494 100%);
}
.scn-maid-finds-body .doorframe {
  position: absolute; left: 20%; top: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #6a5040 0%, #4a3828 40%, #2a1a10 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  box-shadow: inset -10px 0 30px rgba(0,0,0,0.3);
  animation: mfb-doorframe 4s ease-in-out infinite alternate;
}
.scn-maid-finds-body .studyroom {
  position: absolute; left: 25%; top: 5%; width: 55%; height: 85%;
  background: linear-gradient(180deg, #e0d4b8 0%, #c0a888 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
  animation: mfb-room 8s ease-in-out infinite alternate;
}
.scn-maid-finds-body .figure-body {
  position: absolute; left: 50%; bottom: 10%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2018 0%, #0a0808 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: translateX(-50%) rotate(-10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: mfb-body 3s ease-in-out infinite;
}
.scn-maid-finds-body .maid {
  position: absolute; left: 20%; bottom: 15%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: translateX(-50%);
  animation: mfb-maid 2s ease-in-out infinite;
}
.scn-maid-finds-body .shadow {
  position: absolute; left: 15%; bottom: 0; width: 40%; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(10px);
  animation: mfb-shadow 5s ease-in-out infinite alternate;
}
.scn-maid-finds-body .carpet {
  position: absolute; left: 30%; bottom: 0; width: 40%; height: 8%;
  background: linear-gradient(90deg, #7a5a3a 0%, #4a2a1a 50%, #7a5a3a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-maid-finds-body .desk {
  position: absolute; right: 15%; bottom: 25%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4030 0%, #2a2018 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}
@keyframes mfb-doorframe {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(-2deg); }
  100% { transform: skewX(0deg); }
}
@keyframes mfb-room {
  0% { opacity: 0.9; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: 0.95; filter: brightness(0.95); }
}
@keyframes mfb-body {
  0% { transform: translateX(-50%) rotate(-10deg) translateY(0); }
  25% { transform: translateX(-50%) rotate(-8deg) translateY(-2px); }
  75% { transform: translateX(-50%) rotate(-12deg) translateY(0); }
  100% { transform: translateX(-50%) rotate(-10deg) translateY(0); }
}
@keyframes mfb-maid {
  0% { transform: translateX(-50%) rotate(-3deg); }
  30% { transform: translateX(-50%) rotate(4deg); }
  60% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes mfb-shadow {
  0% { opacity: 0.3; transform: scale(1); }
  100% { opacity: 0.7; transform: scale(1.05); }
}

/* telegram-from-lestrade – morning interior, brilliant light */
.scn-telegram-from-lestrade {
  background: 
    linear-gradient(180deg, #fef2e0 0%, #f5d8a0 40%, #d4a060 100%),
    radial-gradient(ellipse at 70% 70%, #ffeab3 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(180,120,50,0.3);
}
.scn-telegram-from-lestrade .room-bg {
  position:absolute; inset:0; 
  background: linear-gradient(135deg, #ead4b0 0%, #c9a87a 100%);
  transform: scale(0.96); border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.2);
}
.scn-telegram-from-lestrade .window {
  position:absolute; top:12%; left:58%; width:22%; height:40%;
  background: linear-gradient(135deg, #fff8e8 0%, #ffecb3 50%, #ffe48f 100%);
  border-radius: 4% 4% 6% 6% / 4% 4% 8% 8%;
  box-shadow: 0 0 40px 20px rgba(255,236,179,0.6), inset 0 0 20px rgba(255,255,255,0.5);
  animation: tl-window 6s ease-in-out infinite alternate;
}
.scn-telegram-from-lestrade .door {
  position:absolute; bottom:20%; right:10%; width:14%; height:44%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5e4a30 100%);
  border-radius: 8% 8% 2% 2% / 20% 20% 4% 4%;
  box-shadow: inset -3px 0 8px #3a2a18, 4px 4px 12px rgba(0,0,0,0.3);
}
.scn-telegram-from-lestrade .figure-tl {
  position:absolute; bottom:18%; left:40%; width:12%; height:34%;
  background: linear-gradient(180deg, #2a2418 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tl-fig 3s ease-in-out infinite alternate;
}
.scn-telegram-from-lestrade .telegram {
  position:absolute; bottom:44%; left:44%; width:6%; height:5%;
  background: linear-gradient(135deg, #fefce0 0%, #f0e0a0 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px rgba(240,224,160,0.5);
  transform: rotate(-12deg);
  animation: tl-msg 2.5s ease-in-out infinite alternate;
}
.scn-telegram-from-lestrade .floor-tl {
  position:absolute; bottom:0; left:0; right:0; height:14%;
  background: linear-gradient(180deg, #9c7c5a 0%, #6b5238 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
}
@keyframes tl-window { 0%{opacity:0.85;box-shadow:0 0 30px 15px rgba(255,236,179,0.5)} 50%{opacity:1;box-shadow:0 0 60px 30px rgba(255,236,179,0.7)} 100%{opacity:0.9;box-shadow:0 0 40px 20px rgba(255,236,179,0.55)} }
@keyframes tl-fig { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(8%) rotate(1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes tl-msg { 0%{transform:rotate(-12deg) translateY(0);opacity:0.8} 50%{transform:rotate(-8deg) translateY(-4%) scale(1.05);opacity:1} 100%{transform:rotate(-12deg) translateY(0);opacity:0.85} }

/* pitt-street-scene – overcast exterior, tense */
.scn-pitt-street-scene {
  background: 
    linear-gradient(180deg, #9aaab8 0%, #7c8a96 40%, #5b6670 100%),
    radial-gradient(ellipse at 50% 80%, #a4b2c0 0%, transparent 70%);
}
.scn-pitt-street-scene .sky-overcast {
  position:absolute; inset:0 0 42% 0;
  background: linear-gradient(180deg, #b2bfcb 0%, #9aa4af 100%);
  animation: ps-sky 20s ease-in-out infinite alternate;
}
.scn-pitt-street-scene .houses-back {
  position:absolute; bottom:34%; left:5%; right:5%; height:30%;
  background: linear-gradient(180deg, #6a737d 0%, #4e555d 100%);
  border-radius: 6% 6% 0 0 / 10% 10% 0 0;
  transform: scale(0.9) translateY(8%);
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.2);
}
.scn-pitt-street-scene .houses-front {
  position:absolute; bottom:24%; left:-2%; right:-2%; height:42%;
  background: linear-gradient(180deg, #59616a 0%, #3f464e 100%);
  border-radius: 4% 4% 0 0 / 6% 6% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3), 0 -2px 6px rgba(0,0,0,0.15);
}
.scn-pitt-street-scene .railing {
  position:absolute; bottom:16%; left:10%; right:10%; height:8%;
  background: repeating-linear-gradient(90deg, transparent, transparent 4%, #2f343a 4%, #2f343a 5%, transparent 5%, transparent 8%);
  background-size: 8% 100%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-pitt-street-scene .street-ps {
  position:absolute; bottom:0; left:-4%; right:-4%; height:18%;
  background: linear-gradient(180deg, #585f66 0%, #3b4147 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-pitt-street-scene .figure-ps {
  position:absolute; bottom:16%; left:30%; width:4%; height:12%;
  background: #2a2e33;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ps-fig 5s ease-in-out infinite alternate;
}
.scn-pitt-street-scene .cloud-ps {
  position:absolute; top:8%; left:20%; width:30%; height:3%;
  background: rgba(180,190,200,0.4); border-radius: 50%; filter: blur(8px);
  animation: ps-cloud 40s linear infinite;
}
@keyframes ps-sky { 0%{opacity:0.6} 50%{opacity:0.9} 100%{opacity:0.7} }
@keyframes ps-fig { 0%{transform:translateX(0) scaleY(1)} 50%{transform:translateX(20%) scaleY(1.02)} 100%{transform:translateX(0) scaleY(0.98)} }
@keyframes ps-cloud { 0%{transform:translateX(-40px)} 100%{transform:translateX(100vw)} }

/* harker-tells-story – bright interior, pacing man */
.scn-harker-tells-story {
  background: 
    linear-gradient(180deg, #f7ead0 0%, #ead6b0 40%, #d6bc90 100%),
    radial-gradient(ellipse at 50% 70%, #fff2d8 0%, transparent 60%);
  box-shadow: inset 0 0 50px rgba(160,120,60,0.2);
}
.scn-harker-tells-story .room-ht-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #f0e0c0 0%, #d4be9a 100%);
  transform: scale(0.94); border-radius: 6%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-harker-tells-story .window-ht {
  position:absolute; top:10%; left:65%; width:18%; height:35%;
  background: linear-gradient(135deg, #fff6e0 0%, #fceac0 100%);
  border-radius: 4% 4% 6% 6% / 6% 6% 8% 8%;
  box-shadow: 0 0 30px 10px rgba(252,234,192,0.5);
  animation: ht-win 8s ease-in-out infinite alternate;
}
.scn-harker-tells-story .lamp-ht {
  position:absolute; top:20%; left:38%; width:6%; height:10%;
  background: radial-gradient(circle at 50% 80%, #fce0a0 0%, #d4a040 60%, #a07028 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(252,224,160,0.6), 0 0 80px 30px rgba(252,224,160,0.3);
  animation: ht-lamp 4s ease-in-out infinite alternate;
}
.scn-harker-tells-story .desk-ht {
  position:absolute; bottom:18%; left:30%; width:30%; height:18%;
  background: linear-gradient(180deg, #7a5a38 0%, #5a3e22 100%);
  border-radius: 4% 4% 2% 2% / 10% 10% 4% 4%;
  box-shadow: inset 0 -2px 6px #2a1a10, 0 4px 12px rgba(0,0,0,0.2);
}
.scn-harker-tells-story .figure-ht {
  position:absolute; bottom:16%; left:20%; width:10%; height:36%;
  background: linear-gradient(180deg, #1a1a18 0%, #10100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ht-fig 3.5s ease-in-out infinite;
}
.scn-harker-tells-story .shadow-ht {
  position:absolute; bottom:12%; left:18%; width:14%; height:6%;
  background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(4px);
  transform: translateX(10%);
  animation: ht-shadow 3.5s ease-in-out infinite;
}
@keyframes ht-win { 0%{opacity:0.8; box-shadow:0 0 20px 6px rgba(252,234,192,0.4)} 50%{opacity:1; box-shadow:0 0 40px 15px rgba(252,234,192,0.6)} 100%{opacity:0.85; box-shadow:0 0 25px 8px rgba(252,234,192,0.45)} }
@keyframes ht-lamp { 0%{opacity:0.9; transform:scaleY(1)} 50%{opacity:1; transform:scaleY(1.02)} 100%{opacity:0.95; transform:scaleY(0.98)} }
@keyframes ht-fig { 0%{transform:translateX(0) rotate(-1deg)} 25%{transform:translateX(30%) rotate(0)} 50%{transform:translateX(60%) rotate(1deg)} 75%{transform:translateX(30%) rotate(0)} 100%{transform:translateX(0) rotate(-1deg)} }
@keyframes ht-shadow { 0%,100%{transform:translateX(10%) scaleX(1)} 50%{transform:translateX(70%) scaleX(1.3)} }

/* harkers-account – night interior, warm lamp, bust */
.scn-harkers-account {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #1f1610 40%, #140e0a 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a1c 0%, transparent 70%);
  box-shadow: inset 0 0 60px rgba(10,6,3,0.6);
}
.scn-harkers-account .room-ha-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #322418 0%, #1f1610 100%);
  transform: scale(0.95); border-radius: 4%;
}
.scn-harkers-account .bust {
  position:absolute; bottom:26%; left:42%; width:12%; height:22%;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4e32 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-3deg);
  box-shadow: inset 0 -4px 10px #3a2818, 0 0 20px 4px rgba(180,140,80,0.2);
  animation: ha-bust 10s ease-in-out infinite alternate;
}
.scn-harkers-account .lamp-ha {
  position:absolute; top:24%; left:25%; width:8%; height:14%;
  background: radial-gradient(circle at 50% 40%, #fce0a0 0%, #d4a040 50%, #8a6030 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 0 60px 20px rgba(252,224,160,0.5), 0 0 100px 40px rgba(252,224,160,0.25);
  animation: ha-lamp 3s ease-in-out infinite alternate;
}
.scn-harkers-account .table-ha {
  position:absolute; bottom:12%; left:28%; width:36%; height:14%;
  background: linear-gradient(180deg, #7a5a38 0%, #4a3420 100%);
  border-radius: 4% 4% 2% 2% / 10% 10% 4% 4%;
  box-shadow: inset 0 -2px 6px #1a1008, 0 6px 20px rgba(0,0,0,0.5);
}
.scn-harkers-account .papers {
  position:absolute; bottom:26%; left:52%; width:8%; height:6%;
  background: linear-gradient(135deg, #f0e0b0 0%, #d4be8a 100%);
  border-radius: 2px; box-shadow: 0 0 10px 2px rgba(212,190,138,0.3);
  transform: rotate(8deg);
  animation: ha-paper 5s ease-in-out infinite alternate;
}
.scn-harkers-account .figure-ha {
  position:absolute; bottom:10%; left:48%; width:10%; height:30%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-fig 4s ease-in-out infinite alternate;
}
@keyframes ha-bust { 0%{transform:rotate(-3deg) scale(1)} 50%{transform:rotate(-1deg) scale(1.02)} 100%{transform:rotate(-3deg) scale(0.98)} }
@keyframes ha-lamp { 0%{opacity:0.8; box-shadow:0 0 40px 15px rgba(252,224,160,0.4)} 50%{opacity:1; box-shadow:0 0 70px 25px rgba(252,224,160,0.7)} 100%{opacity:0.85; box-shadow:0 0 50px 18px rgba(252,224,160,0.5)} }
@keyframes ha-paper { 0%{transform:rotate(8deg) translateY(0)} 50%{transform:rotate(10deg) translateY(-4%)} 100%{transform:rotate(8deg) translateY(0)} }
@keyframes ha-fig { 0%{transform:translateX(0) rotate(-1deg)} 50%{transform:translateX(20%) rotate(1deg)} 100%{transform:translateX(0) rotate(0)} }

.scn-weird-telegram {
  background: linear-gradient(180deg, #1a1a3e 0%, #12122a 40%, #0e0e1e 100%),
              radial-gradient(ellipse at 70% 40%, #2a2a4e 0%, transparent 70%);
}
.scn-weird-telegram .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1e1e30 0%, #161628 100%); animation: wt-wallpulse 8s ease-in-out infinite alternate; }
.scn-weird-telegram .window-frame { position:absolute; top:10%; left:60%; width:80px; height:100px; border:6px solid #2a2a3a; border-radius:4px; background: transparent; animation: wt-frame 10s linear infinite; }
.scn-weird-telegram .window-glass { position:absolute; top:12%; left:62%; width:68px; height:80px; background: linear-gradient(135deg, rgba(140,160,180,0.3) 0%, rgba(80,100,120,0.15) 100%); border-radius:2px; animation: wt-glass 6s ease-in-out infinite alternate; }
.scn-weird-telegram .desk { position:absolute; bottom:20%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.6); animation: wt-desk 12s ease-in-out infinite alternate; }
.scn-weird-telegram .lamp-glow { position:absolute; top:38%; left:25%; width:30px; height:30px; background: radial-gradient(circle, #c08040 0%, #b07030 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px #a06020; animation: wt-lampflicker 2s ease-in-out infinite; }
.scn-weird-telegram .telegram { position:absolute; bottom:32%; left:35%; width:70px; height:30px; background: linear-gradient(135deg, #ddd0b0 0%, #c8b898 100%); border-radius:2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: wt-telegram 5s ease-in-out infinite; }
.scn-weird-telegram .figure-silhouette { position:absolute; bottom:22%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wt-figure 4s ease-in-out infinite; }
@keyframes wt-wallpulse { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes wt-frame { 0% { border-color:#2a2a3a; } 50% { border-color:#3a3a4a; } 100% { border-color:#2a2a3a; } }
@keyframes wt-glass { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.5; transform:scale(1.02); } 100% { opacity:0.2; transform:scale(1); } }
@keyframes wt-desk { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes wt-lampflicker { 0% { box-shadow:0 0 30px 5px #a06020; opacity:0.8; } 30% { box-shadow:0 0 50px 15px #d09050; opacity:1; } 70% { box-shadow:0 0 35px 8px #b07030; opacity:0.9; } 100% { box-shadow:0 0 30px 5px #a06020; opacity:0.8; } }
@keyframes wt-telegram { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes wt-figure { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(-1deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-1px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }

.scn-holmes-reading-times {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1210 50%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-holmes-reading-times .wall-panel { position:absolute; inset:0; background: linear-gradient(135deg, #2a1e1a 0%, #1f1410 100%); animation: hr-wall 10s ease-in-out infinite alternate; }
.scn-holmes-reading-times .bookshelf { position:absolute; top:10%; left:5%; width:15%; height:75%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: hr-shelf 20s ease-in-out infinite; }
.scn-holmes-reading-times .armchair { position:absolute; bottom:15%; left:25%; width:70px; height:80px; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: hr-chair 8s ease-in-out infinite alternate; }
.scn-holmes-reading-times .figure-sitting { position:absolute; bottom:20%; left:30%; width:35px; height:60px; background: linear-gradient(180deg, #0a0a14 0%, #050508 100%); border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%; transform-origin: bottom center; animation: hr-fig 6s ease-in-out infinite; }
.scn-holmes-reading-times .newspaper { position:absolute; bottom:30%; left:32%; width:50px; height:30px; background: linear-gradient(135deg, #d4c0a0 0%, #c0a888 100%); border-radius:2px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: hr-paper 7s ease-in-out infinite; }
.scn-holmes-reading-times .fireplace-glow { position:absolute; bottom:5%; right:10%; width:80px; height:60px; background: radial-gradient(ellipse, #ffa050 0%, #e08030 30%, #502010 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 40px #d07020; animation: hr-fire 3s ease-in-out infinite alternate; }
.scn-holmes-reading-times .lamplight { position:absolute; top:30%; left:70%; width:25px; height:25px; background: radial-gradient(circle, #f0d060 0%, #e0b040 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 15px #d0a030; animation: hr-lamp 4s ease-in-out infinite; }
@keyframes hr-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes hr-shelf { 0% { transform:scaleY(1) } 50% { transform:scaleY(0.99) } 100% { transform:scaleY(1) } }
@keyframes hr-chair { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(1.01); } 100% { transform:translateY(0) scale(1); } }
@keyframes hr-fig { 0% { transform:rotate(0deg) translateY(0); } 25% { transform:rotate(2deg) translateY(-1px); } 50% { transform:rotate(0deg) translateY(0); } 75% { transform:rotate(-1deg) translateY(-1px); } 100% { transform:rotate(0deg) translateY(0); } }
@keyframes hr-paper { 0% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(12deg) translateY(-2px); } 100% { transform:rotate(10deg) translateY(0); } }
@keyframes hr-fire { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.6; transform:scale(1); } }
@keyframes hr-lamp { 0% { box-shadow:0 0 30px 10px #d0a030; opacity:0.8; } 50% { box-shadow:0 0 50px 20px #e0b050; opacity:1; } 100% { box-shadow:0 0 30px 10px #d0a030; opacity:0.8; } }

.scn-drug-mania-reference {
  background: linear-gradient(180deg, #0e0e1a 0%, #0a0a12 50%, #06060a 100%),
              radial-gradient(ellipse at 50% 20%, #20203a 0%, transparent 70%);
}
.scn-drug-mania-reference .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e1a 0%, #12121e 100%); animation: dm-deep 12s ease-in-out infinite alternate; }
.scn-drug-mania-reference .table { position:absolute; bottom:10%; left:5%; right:5%; height:12%; background: linear-gradient(180deg, #1a1a2a 0%, #12121e 100%); border-radius: 6px; box-shadow: 0 -2px 8px rgba(0,0,0,0.5); animation: dm-table 15s ease-in-out infinite; }
.scn-drug-mania-reference .lamp-drop { position:absolute; top:30%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #c08040 0%, #a06020 100%); border-radius: 10% 10% 50% 50%; box-shadow: 0 0 30px 8px #805020; animation: dm-lamp 3s ease-in-out infinite; }
.scn-drug-mania-reference .bottle { position:absolute; bottom:15%; left:35%; width:20px; height:35px; background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 20% 20% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.6); animation: dm-bottle 8s ease-in-out infinite; }
.scn-drug-mania-reference .syringe-shadow { position:absolute; bottom:18%; left:45%; width:30px; height:4px; background: #0a0a0e; border-radius: 50%; transform: rotate(-20deg); box-shadow: 0 0 8px 4px #000; animation: dm-syringe 5s ease-in-out infinite; }
.scn-drug-mania-reference .hand-reaching { position:absolute; bottom:22%; left:40%; width:25px; height:30px; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom left; animation: dm-hand 4s ease-in-out infinite; }
.scn-drug-mania-reference .shadow-hand { position:absolute; bottom:24%; left:38%; width:20px; height:20px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: dm-shadowhand 4s ease-in-out infinite reverse; }
@keyframes dm-deep { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dm-table { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes dm-lamp { 0% { opacity:0.8; transform:scale(1); } 25% { opacity:1; transform:scale(1.1) rotate(3deg); } 50% { opacity:0.9; transform:scale(0.95) rotate(-2deg); } 75% { opacity:1; transform:scale(1.05) rotate(2deg); } 100% { opacity:0.8; transform:scale(1); } }
@keyframes dm-bottle { 0% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(-5deg) translateY(-2px); } 100% { transform:rotate(0deg) translateY(0); } }
@keyframes dm-syringe { 0% { transform:rotate(-20deg) translateX(0); } 25% { transform:rotate(-15deg) translateX(2px); } 50% { transform:rotate(-20deg) translateX(0); } 75% { transform:rotate(-25deg) translateX(-1px); } 100% { transform:rotate(-20deg) translateX(0); } }
@keyframes dm-hand { 0% { transform:rotate(-10deg) translate(0,0); } 25% { transform:rotate(-5deg) translate(3px,-2px); } 50% { transform:rotate(-10deg) translate(0,0); } 75% { transform:rotate(-15deg) translate(-2px,-1px); } 100% { transform:rotate(-10deg) translate(0,0); } }
@keyframes dm-shadowhand { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.5; transform:scale(1.2); } 100% { opacity:0.3; transform:scale(1); } }

.scn-cyril-overton-arrives {
  background: linear-gradient(135deg, #f0e8d8 0%, #e8dcc8 30%, #d8c8b0 100%),
              radial-gradient(ellipse at 20% 50%, #fff8e0 0%, transparent 60%);
}
.scn-cyril-overton-arrives .bg-hall { position:absolute; inset:0; background: linear-gradient(180deg, #f5efe0 0%, #e0d4c0 100%); animation: co-hall 10s ease-in-out infinite alternate; }
.scn-cyril-overton-arrives .door-frame { position:absolute; left:30%; top:5%; width:120px; height:95%; border:10px solid #8a7a6a; border-bottom:none; border-radius: 8px 8px 0 0; background: transparent; animation: co-door 12s ease-in-out infinite; }
.scn-cyril-overton-arrives .sunbeam { position:absolute; left:25%; top:0; width:150px; height:100%; background: linear-gradient(135deg, rgba(255,232,192,0.6) 0%, rgba(255,232,192,0) 100%); clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%); animation: co-sun 8s ease-in-out infinite alternate; }
.scn-cyril-overton-arrives .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #c0b0a0 0%, #a89880 100%); border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.2); animation: co-floor 15s linear infinite; }
.scn-cyril-overton-arrives .figure-broad { position:absolute; bottom:8%; left:32%; width:60px; height:80px; background: linear-gradient(135deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: co-figure 6s ease-in-out infinite; }
.scn-cyril-overton-arrives .shadow-steps { position:absolute; bottom:12%; left:35%; width:50px; height:20px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(5px); animation: co-shadow 6s ease-in-out infinite reverse; }
@keyframes co-hall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes co-door { 0% { border-color:#8a7a6a; } 50% { border-color:#9a8a7a; } 100% { border-color:#8a7a6a; } }
@keyframes co-sun { 0% { opacity:0.5; transform:translateX(0); } 50% { opacity:0.8; transform:translateX(20px); } 100% { opacity:0.5; transform:translateX(0); } }
@keyframes co-floor { 0% { background-position:0 0; } 100% { background-position:50px 0; } }
@keyframes co-figure { 0% { transform:translateX(0) scale(1); } 25% { transform:translateX(5px) scale(1.05); } 50% { transform:translateX(0) scale(1); } 75% { transform:translateX(-3px) scale(0.95); } 100% { transform:translateX(0) scale(1); } }
@keyframes co-shadow { 0% { opacity:0.2; transform:scale(1); } 50% { opacity:0.4; transform:scale(1.3); } 100% { opacity:0.2; transform:scale(1); } }

/* sequence-events */
.scn-sequence-events { background: linear-gradient(180deg, #e8dccc 0%, #c8b89a 40%, #a8986a 100%), radial-gradient(ellipse at 30% 10%, #f5e6ca 0%, transparent 70%); }
.scn-sequence-events .bg-wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d4c4a8 0%, #c0ae8c 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; animation: se-wall 14s ease-in-out infinite alternate; }
.scn-sequence-events .light-beam{ position:absolute; top:8%; left:10%; width:40%; height:6%; background: linear-gradient(90deg, transparent 0%, rgba(245,230,202,0.4) 50%, transparent 100%); transform:rotate(-8deg); filter:blur(4px); animation: se-beam 12s ease-in-out infinite; }
.scn-sequence-events .desk      { position:absolute; bottom:0; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #8b5e3c 0%, #5a3e28 100%); border-radius:8% 8% 0 0; box-shadow:0 -8px 20px rgba(0,0,0,0.3); }
.scn-sequence-events .card      { position:absolute; bottom:20%; width:8%; height:12%; background: linear-gradient(135deg, #f5e6ca 0%, #e8d4b8 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.2); }
.scn-sequence-events .card-1    { left:18%; animation: se-card 8s ease-in-out infinite; }
.scn-sequence-events .card-2    { left:30%; animation: se-card 8s ease-in-out infinite 0.5s; }
.scn-sequence-events .card-3    { left:42%; animation: se-card 8s ease-in-out infinite 1s; }
.scn-sequence-events .card-4    { left:54%; animation: se-card 8s ease-in-out infinite 1.5s; }
.scn-sequence-events .hand-point{ position:absolute; bottom:22%; left:66%; width:6%; height:18%; background: radial-gradient(ellipse at 50% 50%, #d4a86a 0%, #8b5e3c 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin:bottom center; animation: se-hand 6s ease-in-out infinite; }
@keyframes se-wall  { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes se-beam  { 0%,100% { transform:rotate(-8deg) translateX(0) } 50% { transform:rotate(-6deg) translateX(10px) } }
@keyframes se-card  { 0%,100% { transform:translateY(0) scale(1) } 50% { transform:translateY(-6px) scale(1.02) } }
@keyframes se-hand  { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(8deg) } }

/* beppo-hides-pearl */
.scn-beppo-hides-pearl { background: linear-gradient(180deg, #d4c4a8 0%, #b8a48a 40%, #8a7a66 100%), radial-gradient(ellipse at 40% 20%, #f5e6ca 0%, transparent 60%); }
.scn-beppo-hides-pearl .bg-plaster  { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #c8b8a0 0%, #a89880 100%); border-radius:20% 20% 0 0; animation: bhp-plaster 12s ease-in-out infinite alternate; }
.scn-beppo-hides-pearl .wall-shadow { position:absolute; top:10%; left:50%; width:30%; height:60%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); transform:skewX(-10deg); filter:blur(6px); animation: bhp-shadow 8s ease-in-out infinite; }
.scn-beppo-hides-pearl .figure-body { position:absolute; bottom:20%; left:30%; width:14%; height:45%; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; animation: bhp-body 9s ease-in-out infinite; }
.scn-beppo-hides-pearl .figure-arm  { position:absolute; bottom:35%; left:40%; width:18%; height:6%; background:#3b2a1a; border-radius:40% 10% 10% 40%; transform-origin:right center; animation: bhp-arm 5s ease-in-out infinite; }
.scn-beppo-hides-pearl .pearl-glow  { position:absolute; bottom:38%; left:52%; width:10px; height:10px; background: radial-gradient(circle, #ffe8c0 0%, #d4a86a 70%); border-radius:50%; box-shadow:0 0 20px 8px rgba(212,168,106,0.6); animation: bhp-glow 3s ease-in-out infinite alternate; }
.scn-beppo-hides-pearl .pearl       { position:absolute; bottom:38.5%; left:52.2%; width:5px; height:5px; background:#fffbe6; border-radius:50%; }
.scn-beppo-hides-pearl .hole-shadow { position:absolute; bottom:37%; left:51.5%; width:12px; height:14px; background:rgba(0,0,0,0.4); border-radius:50%; filter:blur(2px); animation: bhp-hole 5s ease-in-out infinite; }
@keyframes bhp-plaster { 0%,100% { background-position:0% 0% } 50% { background-position:10% 5% } }
@keyframes bhp-shadow  { 0%,100% { opacity:0.3 } 50% { opacity:0.5 } }
@keyframes bhp-body    { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(-3deg) } }
@keyframes bhp-arm     { 0%,100% { transform:rotate(0deg) translateX(0) } 50% { transform:rotate(15deg) translateX(8px) } }
@keyframes bhp-glow    { 0% { box-shadow:0 0 14px 4px rgba(212,168,106,0.4); opacity:0.8 } 50% { box-shadow:0 0 26px 10px rgba(212,168,106,0.7); opacity:1 } 100% { box-shadow:0 0 18px 6px rgba(212,168,106,0.5); opacity:0.9 } }
@keyframes bhp-hole    { 0%,100% { transform:scale(1) } 50% { transform:scale(1.1) } }

/* beppo-buries-pearl */
.scn-beppo-buries-pearl { background: linear-gradient(180deg, #d8c8ae 0%, #b8a48a 50%, #9a886e 100%), radial-gradient(ellipse at 20% 60%, #f5e6ca 0%, transparent 60%); }
.scn-beppo-buries-pearl .bg-workshop    { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #b8a48a 0%, #a89478 100%); border-radius:10% 10% 40% 40% / 5% 5% 20% 20%; animation: bbp-wall 18s ease-in-out infinite alternate; }
.scn-beppo-buries-pearl .workbench      { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #7a5e42 0%, #5a3e28 100%); border-radius:6px 6px 0 0; box-shadow:0 -4px 10px rgba(0,0,0,0.3); animation: bbp-bench 12s ease-in-out infinite; }
.scn-beppo-buries-pearl .plaster-block  { position:absolute; bottom:38%; left:35%; width:14%; height:12%; background: linear-gradient(135deg, #e8dcc8 0%, #c8b8a0 100%); border-radius:6px; box-shadow:inset 0 2px 6px rgba(0,0,0,0.2); animation: bbp-block 7s ease-in-out infinite; }
.scn-beppo-buries-pearl .beppo-silhouette { position:absolute; bottom:30%; left:20%; width:18%; height:50%; background: radial-gradient(ellipse at 50% 80%, #3b2a1a 0%, #1a0e05 100%); border-radius:60% 40% 30% 70% / 80% 60% 40% 20%; transform-origin:bottom center; animation: bbp-figure 10s ease-in-out infinite; }
.scn-beppo-buries-pearl .pearl-dropped  { position:absolute; bottom:48%; left:40%; width:4px; height:4px; background:#fffbe6; border-radius:50%; box-shadow:0 0 6px 2px rgba(255,251,230,0.5); animation: bbp-drop 4s ease-in-out infinite; }
.scn-beppo-buries-pearl .tool           { position:absolute; bottom:36%; left:54%; width:6%; height:2%; background:#6a4e36; border-radius:2px; transform:rotate(-20deg); animation: bbp-tool 6s ease-in-out infinite; }
.scn-beppo-buries-pearl .light-spot     { position:absolute; top:10%; left:40%; width:30%; height:20%; background: radial-gradient(ellipse, rgba(245,230,202,0.3) 0%, transparent 80%); animation: bbp-light 9s ease-in-out infinite; }
@keyframes bbp-wall   { 0%,100% { background-position:0% 0% } 50% { background-position:5% 3% } }
@keyframes bbp-bench  { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes bbp-block  { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(2deg) } }
@keyframes bbp-figure { 0%,100% { transform:rotate(0deg) scaleX(1) } 50% { transform:rotate(5deg) scaleX(0.95) } }
@keyframes bbp-drop   { 0% { transform:translateY(-10px); opacity:0 } 30% { opacity:1 } 60% { transform:translateY(0); opacity:1 } 100% { transform:translateY(0); opacity:0.8 } }
@keyframes bbp-tool   { 0%,100% { transform:rotate(-20deg) translateX(0) } 50% { transform:rotate(-15deg) translateX(4px) } }
@keyframes bbp-light  { 0%,100% { opacity:0.6 } 50% { opacity:0.9 } }

/* beppo-searches-busts */
.scn-beppo-searches-busts { background: linear-gradient(180deg, #d8c8b0 0%, #b8a48c 50%, #988a72 100%), radial-gradient(ellipse at 60% 30%, #f5e6ca 0%, transparent 70%); }
.scn-beppo-searches-busts .bg-shelves { position:absolute; inset:0 0 15% 0; background: linear-gradient(0deg, #a89880 2px, transparent 2px), linear-gradient(0deg, #b8a48c 4px, transparent 4px); background-size: 100% 30px, 100% 60px; animation: bsb-shelves 20s linear infinite; }
.scn-beppo-searches-busts .shelf      { position:absolute; bottom:50%; left:5%; right:5%; height:4%; background: #7a6a56; border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,0.3); animation: bsb-shelf 14s ease-in-out infinite alternate; }
.scn-beppo-searches-busts .bust       { position:absolute; bottom:52%; width:8%; height:20%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; }
.scn-beppo-searches-busts .bust-1     { left:12%; animation: bsb-bust 9s ease-in-out infinite; }
.scn-beppo-searches-busts .bust-2     { left:26%; animation: bsb-bust 9s ease-in-out infinite 0.5s; }
.scn-beppo-searches-busts .bust-3     { left:40%; animation: bsb-bust 9s ease-in-out infinite 1s; }
.scn-beppo-searches-busts .hand-touch { position:absolute; bottom:55%; left:48%; width:10%; height:14%; background: radial-gradient(ellipse at 50% 50%, #6a4e36 0%, #3b2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin:bottom center; animation: bsb-hand 6s ease-in-out infinite; }
.scn-beppo-searches-busts .lightray   { position:absolute; top:5%; left:30%; width:20%; height:2%; background: linear-gradient(90deg, transparent 0%, rgba(245,230,202,0.5) 50%, transparent 100%); transform:rotate(10deg); filter:blur(3px); animation: bsb-ray 8s ease-in-out infinite; }
@keyframes bsb-shelves { 0% { background-position:0 0 } 100% { background-position:0 30px } }
@keyframes bsb-shelf   { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes bsb-bust    { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(2deg) } }
@keyframes bsb-hand    { 0%,100% { transform:rotate(0deg) translateX(0) } 50% { transform:rotate(-5deg) translateX(6px) } }
@keyframes bsb-ray     { 0%,100% { transform:rotate(10deg) translateX(0) } 50% { transform:rotate(8deg) translateX(15px) } }

.scn-holmes-optimistic {
  background: 
    linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 40%, #1e2a4e 100%),
    radial-gradient(ellipse at 30% 20%, #2a3a5e 0%, transparent 70%);
}
.scn-holmes-optimistic .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0f0f2a 0%, #15153a 50%, #1a1a3e 100%); animation: hopt-sky 15s ease-in-out infinite alternate; }
.scn-holmes-optimistic .stars { position:absolute; top:5%; left:10%; right:10%; height:40%; background: radial-gradient(2px 2px at 10% 20%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 30% 60%, #e8e8e8 0%, transparent 100%), radial-gradient(1.5px 1.5px at 70% 15%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 85% 40%, #ddd 0%, transparent 100%), radial-gradient(2px 2px at 50% 80%, #fff 0%, transparent 100%); background-size: 200% 200%; animation: hopt-stars 30s linear infinite; }
.scn-holmes-optimistic .moor { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 4px 15px rgba(0,0,0,.6); animation: hopt-moor 20s ease-in-out infinite alternate; }
.scn-holmes-optimistic .path { position:absolute; bottom:35%; left:45%; width:40px; height:8%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 10px; transform: skewX(-10deg); animation: hopt-path 8s ease-in-out infinite; }
.scn-holmes-optimistic .figure { position:absolute; bottom:32%; left:20%; width:20px; height:45px; background: linear-gradient(180deg, #12121a 0%, #0a0a12 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hopt-figure 6s ease-in-out infinite; }
.scn-holmes-optimistic .lantern { position:absolute; bottom:33%; left:21%; width:6px; height:6px; background: #d4a050; border-radius: 50%; box-shadow: 0 0 12px 6px #a07030; animation: hopt-lantern 4s ease-in-out infinite; }
.scn-holmes-optimistic .distant-station { position:absolute; bottom:36%; right:8%; width:12px; height:16px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 0 8px 2px #804020; animation: hopt-station 12s ease-in-out infinite; }
@keyframes hopt-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hopt-stars { 0% { background-position: 0% 0%; } 50% { background-position: 100% 100%; } 100% { background-position: 0% 0%; } }
@keyframes hopt-moor { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes hopt-path { 0% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-10deg) translateY(-2px); } 100% { transform: skewX(-10deg) translateY(0); } }
@keyframes hopt-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(10px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(20px) translateY(0) rotate(-1deg); } 75% { transform: translateX(30px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(40px) translateY(0) rotate(0deg); } }
@keyframes hopt-lantern { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(8px) translateY(-2px); } 100% { transform: translateX(16px) translateY(0); } }
@keyframes hopt-station { 0% { transform: scaleY(1); opacity: 0.6; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.7; } }

.scn-at-holdernesse-hall {
  background: 
    linear-gradient(135deg, #f5e6c8 0%, #d4c4a0 50%, #b8a880 100%),
    radial-gradient(ellipse at 80% 20%, #fff4d4 0%, transparent 60%);
}
.scn-at-holdernesse-hall .sunlit-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8d8b8 0%, #d4c4a0 100%); animation: hold-wall 12s ease-in-out infinite alternate; }
.scn-at-holdernesse-hall .window { position:absolute; top:5%; left:15%; width:25%; height:35%; background: linear-gradient(135deg, #f0e8c0 0%, #c0b080 100%); box-shadow: inset 0 0 30px 10px rgba(255,230,150,0.5); border-radius: 4px; animation: hold-window 10s ease-in-out infinite; }
.scn-at-holdernesse-hall .desk { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: hold-desk 8s ease-in-out infinite; }
.scn-at-holdernesse-hall .bookshelf { position:absolute; top:10%; right:8%; width:20%; height:50%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%); border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); animation: hold-shelf 15s ease-in-out infinite alternate; }
.scn-at-holdernesse-hall .chair { position:absolute; bottom:30%; left:35%; width:20%; height:20%; background: linear-gradient(135deg, #6a4a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 20% 20%; animation: hold-chair 6s ease-in-out infinite; }
.scn-at-holdernesse-hall .holmes { position:absolute; bottom:14%; left:30%; width:12%; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hold-holmes 8s ease-in-out infinite; }
.scn-at-holdernesse-hall .wilder { position:absolute; bottom:14%; left:52%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hold-wilder 9s ease-in-out infinite; }
.scn-at-holdernesse-hall .curtain { position:absolute; top:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #b08060 0%, #906040 100%); border-radius: 0 0 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: hold-curtain 4s ease-in-out infinite alternate; }
@keyframes hold-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hold-window { 0% { transform: scaleX(1) scaleY(1); opacity: 0.8; } 50% { transform: scaleX(1.02) scaleY(1.01); opacity: 1; } 100% { transform: scaleX(1) scaleY(1); opacity: 0.9; } }
@keyframes hold-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hold-shelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hold-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes hold-holmes { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hold-wilder { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2px) rotate(-1deg); } 66% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hold-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }

.scn-confronting-duke {
  background: 
    linear-gradient(180deg, #e8d8b0 0%, #c8b890 50%, #a09070 100%),
    radial-gradient(ellipse at 20% 40%, #fff4dc 0%, transparent 50%);
}
.scn-confronting-duke .bright-window { position:absolute; top:0; left:20%; right:20%; height:40%; background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #e8d8b0 100%); box-shadow: inset 0 0 50px 20px rgba(255,240,200,0.6); border-radius: 0 0 40% 40%; animation: cduk-window 8s ease-in-out infinite alternate; }
.scn-confronting-duke .duke-silhouette { position:absolute; bottom:15%; left:25%; width:20%; height:50%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; clip-path: polygon(0 0, 100% 0, 100% 70%, 80% 100%, 20% 100%, 0 70%); animation: cduk-duke 10s ease-in-out infinite; }
.scn-confronting-duke .holmes-figure { position:absolute; bottom:12%; right:20%; width:15%; height:45%; background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cduk-holmes 12s ease-in-out infinite; }
.scn-confronting-duke .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: cduk-shadow 6s ease-in-out infinite; }
.scn-confronting-duke .desk-object { position:absolute; bottom:22%; left:40%; width:8%; height:6%; background: #4a3a2a; border-radius: 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: cduk-desk 5s ease-in-out infinite; }
.scn-confronting-duke .cane { position:absolute; bottom:12%; left:58%; width:2%; height:25%; background: #2a1a0a; transform: rotate(15deg); border-radius: 1px; box-shadow: 0 0 4px rgba(0,0,0,0.4); animation: cduk-cane 7s ease-in-out infinite; }
@keyframes cduk-window { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.85; transform: scaleY(1); } }
@keyframes cduk-duke { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cduk-holmes { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(4px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cduk-shadow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cduk-desk { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes cduk-cane { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-holmes-asks-for-reward {
  background: 
    linear-gradient(180deg, #c8b088 0%, #a08050 100%),
    radial-gradient(ellipse at 60% 50%, #e0c8a0 0%, transparent 60%);
}
.scn-holmes-asks-for-reward .desk-surface { position:absolute; bottom:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); animation: harw-desk 10s ease-in-out infinite; }
.scn-holmes-asks-for-reward .papers { position:absolute; bottom:20%; left:25%; width:30%; height:8%; background: linear-gradient(135deg, #e0d0b0 0%, #c0b090 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); transform: rotate(-5deg); animation: harw-papers 8s ease-in-out infinite; }
.scn-holmes-asks-for-reward .inkwell { position:absolute; bottom:18%; left:60%; width:6%; height:8%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 8px rgba(0,0,0,0.5); animation: harw-inkwell 12s ease-in-out infinite; }
.scn-holmes-asks-for-reward .hand-reach { position:absolute; bottom:25%; left:40%; width:10%; height:15%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(30deg); transform-origin: bottom left; animation: harw-hand-reach 7s ease-in-out infinite; }
.scn-holmes-asks-for-reward .duke-hand { position:absolute; bottom:30%; left:55%; width:8%; height:12%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(-20deg); transform-origin: bottom right; animation: harw-duke-hand 9s ease-in-out infinite; }
.scn-holmes-asks-for-reward .shadow-holmes { position:absolute; bottom:0; left:0; width:40%; height:50%; background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 100%); border-radius: 0 50% 0 0; animation: harw-shadow-h 15s ease-in-out infinite alternate; }
.scn-holmes-asks-for-reward .shadow-wilder { position:absolute; bottom:0; right:0; width:35%; height:45%; background: linear-gradient(225deg, rgba(0,0,0,0.15) 0%, transparent 100%); border-radius: 50% 0 0 0; animation: harw-shadow-w 18s ease-in-out infinite alternate; }
.scn-holmes-asks-for-reward .lamp-glow { position:absolute; top:5%; left:45%; width:10%; height:10%; background: radial-gradient(circle, #f0d080 0%, transparent 100%); filter: blur(8px); animation: harw-lamp 6s ease-in-out infinite; }
@keyframes harw-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes harw-papers { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes harw-inkwell { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes harw-hand-reach { 0% { transform: rotate(30deg) translateX(0); } 33% { transform: rotate(32deg) translateX(4px); } 66% { transform: rotate(28deg) translateX(-2px); } 100% { transform: rotate(30deg) translateX(0); } }
@keyframes harw-duke-hand { 0% { transform: rotate(-20deg) translateX(0); } 33% { transform: rotate(-18deg) translateX(-3px); } 66% { transform: rotate(-22deg) translateX(2px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes harw-shadow-h { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes harw-shadow-w { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes harw-lamp { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

/* struggle-at-fall */
.scn-struggle-at-fall {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #6a5a3a 0%, transparent 60%);
}
.scn-struggle-at-fall .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 30%, #4a3a2a 70%, #3a2a1a 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: sf-wall 12s ease-in-out infinite alternate;
}
.scn-struggle-at-fall .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-top: 2px solid #5a4a3a;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-struggle-at-fall .window {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #ffe080 0%, #c8a050 60%, #8a6a30 100%);
  border: 6px solid #5a3a1a;
  border-radius: 4px;
  box-shadow: 0 0 40px 10px rgba(255,224,128,0.4);
  animation: sf-window 4s ease-in-out infinite alternate;
}
.scn-struggle-at-fall .light-beam {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(255,224,128,0.3) 0%, rgba(255,224,128,0) 100%);
  filter: blur(8px);
  transform-origin: top center;
  animation: sf-beam 6s ease-in-out infinite alternate;
}
.scn-struggle-at-fall .figure-holmes {
  position: absolute; bottom: 30%; left: 40%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-holmes 2s ease-in-out infinite;
}
.scn-struggle-at-fall .figure-moriarty {
  position: absolute; bottom: 30%; left: 46%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-moriarty 2s ease-in-out infinite reverse;
}
.scn-struggle-at-fall .shadow {
  position: absolute; bottom: 30%; left: 38%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: sf-shadow 2s ease-in-out infinite;
}
.scn-struggle-at-fall .dust {
  position: absolute; top: 20%; left: 30%; width: 6px; height: 6px;
  background: rgba(200,180,140,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: sf-dust 8s linear infinite;
}
@keyframes sf-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sf-window {
  0% { box-shadow: 0 0 30px 6px rgba(255,224,128,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 60px 15px rgba(255,224,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 40px 8px rgba(255,224,128,0.4); opacity: 0.9; }
}
@keyframes sf-beam {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(0.9); }
  100% { transform: rotate(-3deg) scaleY(1); }
}
@keyframes sf-holmes {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes sf-moriarty {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  50% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes sf-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}
@keyframes sf-dust {
  0% { transform: translate(0, 0); opacity: 0; }
  25% { opacity: 1; }
  75% { opacity: 1; }
  100% { transform: translate(20px, -30px); opacity: 0; }
}

/* fall-into-chasm */
.scn-fall-into-chasm {
  background: 
    linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 30%, #0a0a0a 70%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a3a 0%, transparent 60%);
}
.scn-fall-into-chasm .chasm-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #00000a 100%);
  animation: fc-bg 15s ease-in-out infinite alternate;
}
.scn-fall-into-chasm .chasm-wall-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #2a1a1a 0%, #1a0a0a 50%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: fc-wall 12s ease-in-out infinite alternate;
}
.scn-fall-into-chasm .chasm-wall-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(270deg, #2a1a1a 0%, #1a0a0a 50%, transparent 100%);
  clip-path: polygon(100% 0, 0 0, 20% 100%, 100% 100%);
  animation: fc-wall 12s ease-in-out infinite alternate-reverse;
}
.scn-fall-into-chasm .figure-falling {
  position: absolute; top: 20%; left: 50%; width: 28px; height: 56px;
  margin-left: -14px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: center center;
  animation: fc-falling 3s ease-in-out infinite;
}
.scn-fall-into-chasm .light-above {
  position: absolute; top: 0; left: 50%; width: 100px; height: 200px;
  margin-left: -50px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: fc-light 5s ease-in-out infinite alternate;
}
.scn-fall-into-chasm .rock-1 {
  position: absolute; top: 30%; left: 20%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 30% 70%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: fc-rock1 8s linear infinite;
}
.scn-fall-into-chasm .rock-2 {
  position: absolute; top: 50%; right: 25%; width: 20px; height: 15px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 70% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: fc-rock2 10s linear infinite reverse;
}
.scn-fall-into-chasm .spray {
  position: absolute; bottom: 10%; left: 50%; width: 40px; height: 30px;
  margin-left: -20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,230,255,0.3) 0%, transparent 60%);
  filter: blur(6px);
  animation: fc-spray 4s ease-in-out infinite alternate;
}
@keyframes fc-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes fc-wall {
  0% { transform: translateX(0); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}
@keyframes fc-falling {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(30px) rotate(15deg) scale(0.95); }
  50% { transform: translateY(60px) rotate(0deg) scale(0.9); }
  75% { transform: translateY(90px) rotate(-15deg) scale(0.85); }
  100% { transform: translateY(120px) rotate(0deg) scale(0.8); }
}
@keyframes fc-light {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}
@keyframes fc-rock1 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(40px) rotate(180deg); }
  100% { transform: translateY(80px) rotate(360deg); }
}
@keyframes fc-rock2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-20px) rotate(-90deg); }
  100% { transform: translateY(-40px) rotate(-180deg); }
}
@keyframes fc-spray {
  0% { transform: scaleY(1); opacity: 0.3; }
  50% { transform: scaleY(1.5); opacity: 0.5; }
  100% { transform: scaleY(1); opacity: 0.3; }
}

/* tracks-explanation */
.scn-tracks-explanation {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #5a4a3a 30%, #4a3a2a 70%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 50%, #6a5a4a 0%, transparent 70%);
}
.scn-tracks-explanation .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  animation: te-room 20s ease-in-out infinite alternate;
}
.scn-tracks-explanation .fireplace {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 120px;
  margin-left: -50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 15% 15% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-tracks-explanation .table {
  position: absolute; bottom: 18%; left: 30%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-tracks-explanation .lamp {
  position: absolute; bottom: 45%; left: 32%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #b08040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.4);
  animation: te-lamp 3s ease-in-out infinite alternate;
}
.scn-tracks-explanation .holmes {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: te-holmes 5s ease-in-out infinite;
}
.scn-tracks-explanation .watson {
  position: absolute; bottom: 18%; left: 52%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: te-watson 5s ease-in-out infinite reverse;
}
.scn-tracks-explanation .cigarette-smoke {
  position: absolute; bottom: 40%; left: 42%; width: 10px; height: 10px;
  background: rgba(200,180,150,0.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: te-smoke 6s ease-out infinite;
}
.scn-tracks-explanation .shadow {
  position: absolute; bottom: 18%; left: 38%; width: 70px; height: 15px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: te-shadow 5s ease-in-out infinite;
}
@keyframes te-room {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes te-lamp {
  0% { box-shadow: 0 0 20px 5px rgba(255,208,128,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 15px rgba(255,208,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(255,208,128,0.4); opacity: 0.9; }
}
@keyframes te-holmes {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes te-watson {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes te-smoke {
  0% { transform: translate(0, 0) scale(1); opacity: 0.2; }
  50% { transform: translate(10px, -20px) scale(2); opacity: 0.1; }
  100% { transform: translate(20px, -40px) scale(3); opacity: 0; }
}
@keyframes te-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.4; }
}

/* reasoning-for-disappearance */
.scn-reasoning-for-disappearance {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #5a4a3a 30%, #4a3a2a 70%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 50%, #6a5a4a 0%, transparent 70%);
}
.scn-reasoning-for-disappearance .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
  animation: rd-wall 18s ease-in-out infinite alternate;
}
.scn-reasoning-for-disappearance .bookshelf {
  position: absolute; top: 15%; right: 10%; width: 100px; height: 200px;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 20%, #3a2a1a 80%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: rd-shelf 10s ease-in-out infinite alternate;
}
.scn-reasoning-for-disappearance .window {
  position: absolute; top: 20%; left: 10%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, #ffe080 0%, #c8a050 70%, #8a6a30 100%);
  border: 6px solid #5a3a1a;
  border-radius: 4px;
  box-shadow: 0 0 40px 10px rgba(255,224,128,0.3);
  animation: rd-window 5s ease-in-out infinite alternate;
}
.scn-reasoning-for-disappearance .desk {
  position: absolute; bottom: 20%; left: 25%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-reasoning-for-disappearance .holmes {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd-holmes 4s ease-in-out infinite;
}
.scn-reasoning-for-disappearance .shadow {
  position: absolute; bottom: 20%; left: 28%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: rd-shadow 4s ease-in-out infinite;
}
.scn-reasoning-for-disappearance .light-patch {
  position: absolute; top: 20%; left: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, rgba(255,224,128,0.2) 0%, rgba(255,224,128,0) 100%);
  filter: blur(10px);
  animation: rd-light 6s ease-in-out infinite alternate;
}
@keyframes rd-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes rd-shelf {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes rd-window {
  0% { box-shadow: 0 0 30px 5px rgba(255,224,128,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 12px rgba(255,224,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 35px 8px rgba(255,224,128,0.3); opacity: 0.9; }
}
@keyframes rd-holmes {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rd-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.15); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}
@keyframes rd-light {
  0% { transform: scaleY(0.9); opacity: 0.3; }
  50% { transform: scaleY(1.1); opacity: 0.5; }
  100% { transform: scaleY(0.95); opacity: 0.3; }
}

.scn-huxtable-reveals-duke {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #8a7a5c 100%),
              radial-gradient(ellipse at 50% 100%, #c4a86a 0%, transparent 70%);
}
.scn-huxtable-reveals-duke .wall { position:absolute; inset:0; background: linear-gradient(135deg, #e8d8b8 0%, #b8a080 100%); animation: hrd-wall 12s ease-in-out infinite alternate; }
.scn-huxtable-reveals-duke .shadow { position:absolute; bottom:20%; left:25%; width:40%; height:40%; background: rgba(40,30,10,0.3); border-radius: 40% 60% 0 0; filter: blur(8px); animation: hrd-shadow 6s ease-in-out infinite alternate; }
.scn-huxtable-reveals-duke .figure { position:absolute; bottom:15%; left:35%; width:12%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hrd-figure 6s ease-in-out infinite alternate; }
.scn-huxtable-reveals-duke .desk { position:absolute; bottom:0; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-huxtable-reveals-duke .lamp { position:absolute; bottom:45%; left:18%; width:8%; height:12%; background: radial-gradient(circle, #ffe080 0%, #d4a040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,224,128,0.5); animation: hrd-lamp 3s ease-in-out infinite alternate; }
.scn-huxtable-reveals-duke .papers { position:absolute; bottom:17%; left:45%; width:15%; height:6%; background: #f0e6d0; border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: hrd-papers 10s ease-in-out infinite; }
.scn-huxtable-reveals-duke .arm-gesture { position:absolute; bottom:35%; left:38%; width:4%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: hrd-arm 4s ease-in-out infinite alternate; }
@keyframes hrd-wall { 0% { opacity:0.9 } 50% { opacity:0.95 } 100% { opacity:0.9 } }
@keyframes hrd-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.3 } 50% { transform: translateX(8px) scaleX(1.1); opacity:0.5 } 100% { transform: translateX(-5px) scaleX(0.9); opacity:0.4 } }
@keyframes hrd-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(-2deg) } 100% { transform: translateY(2px) rotate(1deg) } }
@keyframes hrd-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,224,128,0.4); opacity:0.8 } 50% { box-shadow: 0 0 40px 15px rgba(255,224,128,0.7); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(255,224,128,0.5); opacity:0.85 } }
@keyframes hrd-papers { 0% { transform: translate(0,0) rotate(0deg); opacity:1 } 25% { transform: translate(2px,-1px) rotate(2deg); opacity:0.95 } 50% { transform: translate(-3px,1px) rotate(-3deg); opacity:1 } 75% { transform: translate(1px,2px) rotate(1deg); opacity:0.9 } 100% { transform: translate(0,0) rotate(0deg); opacity:1 } }
@keyframes hrd-arm { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(30deg) translateY(0) } }

.scn-holmes-consults-encyclopedia {
  background: linear-gradient(180deg, #d4b890 0%, #b89a70 30%, #7a5a3a 100%),
              radial-gradient(ellipse at 50% 80%, #c4a070 0%, transparent 60%);
}
.scn-holmes-consults-encyclopedia .bookshelf { position:absolute; top:10%; left:5%; width:45%; height:70%; background: linear-gradient(90deg, #5a3a1a 0%, #4a2a0a 20%, #5a3a1a 40%, #4a2a0a 60%, #5a3a1a 80%, #4a2a0a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); animation: hce-shelf 20s ease-in-out infinite; }
.scn-holmes-consults-encyclopedia .volume-h { position:absolute; top:30%; left:15%; width:8%; height:35%; background: linear-gradient(180deg, #d4b080 0%, #b09060 100%); border-radius: 2px; box-shadow: 2px 2px 8px rgba(0,0,0,0.3); animation: hce-volume 8s ease-in-out infinite alternate; }
.scn-holmes-consults-encyclopedia .holmes-arm { position:absolute; bottom:25%; left:35%; width:3%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 30% 30% 20% 20%; transform-origin: top center; animation: hce-arm 5s ease-in-out infinite alternate; }
.scn-holmes-consults-encyclopedia .holmes-body { position:absolute; bottom:15%; left:30%; width:12%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hce-body 10s ease-in-out infinite; }
.scn-holmes-consults-encyclopedia .chair { position:absolute; bottom:15%; left:27%; width:18%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-holmes-consults-encyclopedia .lamp { position:absolute; top:5%; left:55%; width:10%; height:15%; background: radial-gradient(circle, #ffe080 0%, #d4a040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,224,128,0.4); animation: hce-lamp 4s ease-in-out infinite alternate; }
.scn-holmes-consults-encyclopedia .desk { position:absolute; bottom:0; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); }
@keyframes hce-shelf { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.01); opacity:1 } 100% { transform: scaleY(1); opacity:0.95 } }
@keyframes hce-volume { 0% { transform: translateX(0) rotate(0deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.3) } 50% { transform: translateX(5px) rotate(2deg); box-shadow: 4px 4px 12px rgba(0,0,0,0.4) } 100% { transform: translateX(-2px) rotate(-1deg); box-shadow: 1px 1px 6px rgba(0,0,0,0.3) } }
@keyframes hce-arm { 0% { transform: rotate(0deg) translateY(0); height:40% } 50% { transform: rotate(20deg) translateY(-5px); height:45% } 100% { transform: rotate(-10deg) translateY(0); height:38% } }
@keyframes hce-body { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes hce-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,224,128,0.4); opacity:0.85 } 50% { box-shadow: 0 0 40px 15px rgba(255,224,128,0.6); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(255,224,128,0.5); opacity:0.9 } }

.scn-huxtable-offers-reward {
  background: linear-gradient(180deg, #e6d5b0 0%, #c4a86a 40%, #7a5a3a 100%),
              radial-gradient(ellipse at 40% 100%, #a08050 0%, transparent 70%);
}
.scn-huxtable-offers-reward .background { position:absolute; inset:0; background: linear-gradient(135deg, #d4c4a0 0%, #b8a080 100%); animation: hor-bg 15s ease-in-out infinite alternate; }
.scn-huxtable-offers-reward .shadow { position:absolute; bottom:20%; left:30%; width:35%; height:35%; background: rgba(40,30,10,0.25); border-radius: 50% 50% 0 0; filter: blur(10px); animation: hor-shadow 7s ease-in-out infinite alternate; }
.scn-huxtable-offers-reward .figure { position:absolute; bottom:12%; left:40%; width:12%; height:38%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hor-figure 6s ease-in-out infinite alternate; }
.scn-huxtable-offers-reward .desk { position:absolute; bottom:0; left:20%; right:15%; height:14%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-huxtable-offers-reward .lamp { position:absolute; bottom:45%; left:12%; width:8%; height:14%; background: radial-gradient(circle, #ffe080 0%, #d4a040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,224,128,0.4); animation: hor-lamp 3s ease-in-out infinite alternate; }
.scn-huxtable-offers-reward .envelope { position:absolute; bottom:28%; left:50%; width:12%; height:8%; background: #f5f0e0; border-radius: 2px; box-shadow: 2px 2px 8px rgba(0,0,0,0.3); transform-origin: left center; animation: hor-env 5s ease-in-out infinite alternate; }
.scn-huxtable-offers-reward .arm-offer { position:absolute; bottom:38%; left:44%; width:3%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: hor-arm 4s ease-in-out infinite alternate; }
@keyframes hor-bg { 0% { opacity:0.92 } 50% { opacity:0.98 } 100% { opacity:0.92 } }
@keyframes hor-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.25 } 50% { transform: translateX(10px) scaleX(1.15); opacity:0.45 } 100% { transform: translateX(-8px) scaleX(0.9); opacity:0.3 } }
@keyframes hor-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes hor-lamp { 0% { box-shadow: 0 0 15px 3px rgba(255,224,128,0.4); opacity:0.8 } 50% { box-shadow: 0 0 45px 18px rgba(255,224,128,0.65); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(255,224,128,0.5); opacity:0.85 } }
@keyframes hor-env { 0% { transform: translateX(0) rotate(0deg); opacity:0.7 } 50% { transform: translateX(8px) rotate(3deg); opacity:1 } 100% { transform: translateX(-2px) rotate(-2deg); opacity:0.8 } }
@keyframes hor-arm { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(20deg) translateY(0) } }

.scn-holmes-accepts-case {
  background: linear-gradient(180deg, #e0d0b8 0%, #c0a880 40%, #7a5a3a 100%),
              radial-gradient(ellipse at 50% 90%, #b89a70 0%, transparent 60%);
}
.scn-holmes-accepts-case .background-window { position:absolute; inset:0; background: linear-gradient(135deg, #d4c0a0 0%, #a08860 100%); animation: hac-bg 20s ease-in-out infinite; }
.scn-holmes-accepts-case .holmes { position:absolute; bottom:15%; left:25%; width:14%; height:38%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hac-holmes 9s ease-in-out infinite; }
.scn-holmes-accepts-case .watson { position:absolute; bottom:12%; left:45%; width:13%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hac-watson 11s ease-in-out infinite; }
.scn-holmes-accepts-case .desk { position:absolute; bottom:0; left:15%; right:15%; height:16%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-holmes-accepts-case .lamp { position:absolute; top:15%; left:55%; width:10%; height:18%; background: radial-gradient(circle, #ffe080 0%, #d4a040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,224,128,0.4); animation: hac-lamp 4s ease-in-out infinite alternate; }
.scn-holmes-accepts-case .papers-stack { position:absolute; bottom:20%; left:35%; width:12%; height:8%; background: linear-gradient(180deg, #f0e6d0 0%, #d4c8b0 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: hac-papers 15s ease-in-out infinite; }
.scn-holmes-accepts-case .chair { position:absolute; bottom:15%; left:22%; width:20%; height:22%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
@keyframes hac-bg { 0% { opacity:0.92 } 50% { opacity:0.98 } 100% { opacity:0.92 } }
@keyframes hac-holmes { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes hac-watson { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes hac-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,224,128,0.4); opacity:0.85 } 50% { box-shadow: 0 0 40px 15px rgba(255,224,128,0.6); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(255,224,128,0.5); opacity:0.9 } }
@keyframes hac-papers { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(2px,-1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0deg) } }

/* hopkins-describes-scene (h1) */
.scn-hopkins-describes-scene {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2c1a1a 50%, #1a0f0f 100%),
    radial-gradient(ellipse at 50% 70%, #4a2a2a 0%, transparent 70%);
}
.scn-hopkins-describes-scene .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0f 100%);
  animation: h1-wall 12s ease-in-out infinite alternate;
}
.scn-hopkins-describes-scene .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-hopkins-describes-scene .table {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: h1-table 9s ease-in-out infinite alternate;
}
.scn-hopkins-describes-scene .slab {
  position: absolute; bottom: 24%; left: 33%; width: 90px; height: 12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-hopkins-describes-scene .lantern {
  position: absolute; bottom: 32%; left: 52%; width: 14px; height: 20px;
  background: radial-gradient(circle, #e8b860 0%, #b08030 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: h1-lantern 3s ease-in-out infinite alternate;
}
.scn-hopkins-describes-scene .fly {
  position: absolute; width: 4px; height: 4px;
  background: #1a1a1a;
  border-radius: 50%;
  box-shadow: 0 0 2px #0a0a0a;
}
.scn-hopkins-describes-scene .fly-1 {
  top: 20%; left: 40%;
  animation: h1-fly1 4s ease-in-out infinite;
}
.scn-hopkins-describes-scene .fly-2 {
  top: 30%; left: 50%;
  animation: h1-fly2 5s ease-in-out infinite 0.5s;
}
.scn-hopkins-describes-scene .fly-3 {
  top: 25%; left: 35%;
  animation: h1-fly3 4.5s ease-in-out infinite 1s;
}

@keyframes h1-wall {
  0% { opacity: 0.85; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1); }
  100% { opacity: 0.9; filter: brightness(0.85); }
}
@keyframes h1-table {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.3deg); }
  100% { transform: translateY(0) rotate(-0.2deg); }
}
@keyframes h1-lantern {
  0% { box-shadow: 0 0 18px 4px #c08040, 0 0 36px 8px rgba(192,128,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px #e8b860, 0 0 60px 18px rgba(232,184,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 22px 6px #c08040, 0 0 44px 12px rgba(192,128,64,0.35); opacity: 0.85; }
}
@keyframes h1-fly1 {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(12px,-8px) rotate(30deg); }
  50% { transform: translate(-8px,16px) rotate(-45deg); }
  75% { transform: translate(20px,4px) rotate(60deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes h1-fly2 {
  0% { transform: translate(0,0) scale(1); }
  30% { transform: translate(-16px,-12px) scale(1.1) rotate(20deg); }
  60% { transform: translate(8px,8px) scale(0.9) rotate(-30deg); }
  100% { transform: translate(0,0) scale(1); }
}
@keyframes h1-fly3 {
  0% { transform: translate(0,0); }
  20% { transform: translate(10px,-6px) skew(2deg); }
  40% { transform: translate(-14px,10px); }
  60% { transform: translate(18px,-4px) skew(-2deg); }
  80% { transform: translate(-6px,12px); }
  100% { transform: translate(0,0); }
}

/* hopkins-on-footmarks (h2) */
.scn-hopkins-on-footmarks {
  background: 
    linear-gradient(180deg, #0e1a2a 0%, #1a2a3a 50%, #0a0f1a 100%),
    radial-gradient(ellipse at 60% 60%, #2a3a4a 0%, transparent 70%);
}
.scn-hopkins-on-footmarks .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%);
  animation: h2-wall 8s ease-in-out infinite alternate;
}
.scn-hopkins-on-footmarks .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-hopkins-on-footmarks .door {
  position: absolute; bottom: 10%; left: 20%; width: 80px; height: 120px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0f 100%);
  border: 2px solid #1a0f0a;
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(0,0,0,0.6);
  animation: h2-door 14s ease-in-out infinite alternate;
}
.scn-hopkins-on-footmarks .candle {
  position: absolute; bottom: 40%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e8d0a0 0%, #b09060 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 16px 6px #d0b080, 0 0 32px 12px rgba(208,176,128,0.3);
  animation: h2-candle 3s ease-in-out infinite alternate;
}
.scn-hopkins-on-footmarks .figure {
  position: absolute; bottom: 10%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a14 0%, #050508 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: h2-figure 5s ease-in-out infinite;
}
.scn-hopkins-on-footmarks .shadow {
  position: absolute; bottom: 8%; left: 42%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: h2-shadow 5s ease-in-out infinite;
}
.scn-hopkins-on-footmarks .scuff {
  position: absolute; bottom: 5%; left: 60%; width: 8px; height: 3px;
  background: rgba(40,30,20,0.3);
  border-radius: 50%;
  animation: h2-scuff 20s linear infinite;
}

@keyframes h2-wall {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.85); }
}
@keyframes h2-door {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.3deg); }
}
@keyframes h2-candle {
  0% { box-shadow: 0 0 12px 4px #d0b080, 0 0 24px 8px rgba(208,176,128,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 24px 8px #e8d0a0, 0 0 48px 16px rgba(232,208,160,0.4); opacity: 1; }
  100% { box-shadow: 0 0 16px 5px #d0b080, 0 0 32px 10px rgba(208,176,128,0.25); opacity: 0.9; }
}
@keyframes h2-figure {
  0%, 100% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
}
@keyframes h2-shadow {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.1) translateX(2px); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes h2-scuff {
  0% { opacity: 0; transform: translateY(0); }
  20% { opacity: 0.3; transform: translateY(-2px); }
  40% { opacity: 0.1; transform: translateY(0); }
  60% { opacity: 0.4; transform: translateY(-3px); }
  80% { opacity: 0.2; transform: translateY(-1px); }
  100% { opacity: 0; transform: translateY(0); }
}

/* hopkins-on-objects (h3) */
.scn-hopkins-on-objects {
  background: 
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 50%, #0a0a14 100%),
    radial-gradient(ellipse at 40% 60%, #2a2a4a 0%, transparent 70%);
}
.scn-hopkins-on-objects .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  animation: h3-wall 10s ease-in-out infinite alternate;
}
.scn-hopkins-on-objects .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0a 100%);
  border-radius: 15% 15% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.6);
}
.scn-hopkins-on-objects .table {
  position: absolute; bottom: 15%; left: 25%; width: 140px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform-origin: center bottom;
  animation: h3-table 7s ease-in-out infinite alternate;
}
.scn-hopkins-on-objects .harpoon {
  position: absolute; bottom: 25%; left: 60%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: h3-harpoon 6s ease-in-out infinite;
}
.scn-hopkins-on-objects .lamp {
  position: absolute; bottom: 38%; left: 48%; width: 12px; height: 16px;
  background: radial-gradient(circle, #c8a060 0%, #907040 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 18px 6px #a08050, 0 0 36px 12px rgba(160,128,80,0.3);
  animation: h3-lamp 4s ease-in-out infinite alternate;
}
.scn-hopkins-on-objects .rope {
  position: absolute; bottom: 12%; left: 70%; width: 40px; height: 4px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: h3-rope 12s ease-in-out infinite alternate;
}
.scn-hopkins-on-objects .stain {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 10px;
  background: radial-gradient(ellipse, #3a1a1a 0%, transparent 100%);
  border-radius: 50%;
  animation: h3-stain 20s ease-in-out infinite;
}

@keyframes h3-wall {
  0% { filter: brightness(0.85); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.9); }
}
@keyframes h3-table {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.2deg); }
  100% { transform: translateY(0) rotate(-0.2deg); }
}
@keyframes h3-harpoon {
  0% { transform: rotate(-18deg) translateY(0); }
  25% { transform: rotate(-22deg) translateY(2px); }
  50% { transform: rotate(-18deg) translateY(0); }
  75% { transform: rotate(-20deg) translateY(1px); }
  100% { transform: rotate(-18deg) translateY(0); }
}
@keyframes h3-lamp {
  0% { box-shadow: 0 0 14px 4px #a08050, 0 0 28px 8px rgba(160,128,80,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 26px 8px #c8a060, 0 0 52px 16px rgba(200,160,96,0.4); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #a08050, 0 0 36px 10px rgba(160,128,80,0.25); opacity: 0.85; }
}
@keyframes h3-rope {
  0% { transform: rotate(12deg) scaleX(1); }
  50% { transform: rotate(18deg) scaleX(1.05); }
  100% { transform: rotate(12deg) scaleX(1); }
}
@keyframes h3-stain {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.2); }
  100% { opacity: 0.2; transform: scale(1); }
}

/* holmes-comments-on-rum (h4) */
.scn-holmes-comments-on-rum {
  background: 
    linear-gradient(180deg, #1a1a0e 0%, #2a2a1a 50%, #1a1a0e 100%),
    radial-gradient(ellipse at 50% 40%, #3a3a2a 0%, transparent 70%);
}
.scn-holmes-comments-on-rum .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  animation: h4-wall 15s ease-in-out infinite alternate;
}
.scn-holmes-comments-on-rum .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 25% 25% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-holmes-comments-on-rum .chest {
  position: absolute; bottom: 12%; left: 35%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform-origin: center bottom;
  animation: h4-chest 18s ease-in-out infinite alternate;
}
.scn-holmes-comments-on-rum .tantalus {
  position: absolute; bottom: 22%; left: 38%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: h4-tantalus 10s ease-in-out infinite alternate;
}
.scn-holmes-comments-on-rum .bottle-a {
  position: absolute; bottom: 25%; left: 42%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: h4-bottle 8s ease-in-out infinite;
}
.scn-holmes-comments-on-rum .bottle-b {
  position: absolute; bottom: 25%; left: 46%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: h4-bottle 8s ease-in-out infinite 2s;
}
.scn-holmes-comments-on-rum .lamp {
  position: absolute; bottom: 30%; left: 55%; width: 10px; height: 14px;
  background: radial-gradient(circle, #d0a060 0%, #a08040 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 14px 4px #b09050, 0 0 28px 8px rgba(176,144,80,0.3);
  animation: h4-lamp 4s ease-in-out infinite alternate;
}

@keyframes h4-wall {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.95); }
}
@keyframes h4-chest {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.1deg); }
  100% { transform: translateY(0) rotate(-0.1deg); }
}
@keyframes h4-tantalus {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes h4-bottle {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes h4-lamp {
  0% { box-shadow: 0 0 12px 3px #b09050, 0 0 24px 6px rgba(176,144,80,0.2); opacity: 0.85; }
  50% { box-shadow: 0 0 20px 6px #d0a060, 0 0 40px 12px rgba(208,160,96,0.4); opacity: 1; }
  100% { box-shadow: 0 0 14px 4px #b09050, 0 0 28px 8px rgba(176,144,80,0.25); opacity: 0.9; }
}

/* professor-dismisses-clues */
.scn-professor-dismisses-clues {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #3a2a1a 40%, #1a120e 100%),
    radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-professor-dismisses-clues .back-wall {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 80%);
  animation: pd-wall 12s ease-in-out infinite alternate;
}
.scn-professor-dismisses-clues .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1208 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-professor-dismisses-clues .desk {
  position: absolute;
  bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 200px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-professor-dismisses-clues .lamp {
  position: absolute;
  bottom: 38%; left: 58%;
  width: 24px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%, #5a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  box-shadow: 0 0 30px 8px rgba(255,208,128,.4), 0 0 60px 16px rgba(255,208,128,.15);
  animation: pd-lamp 4s ease-in-out infinite alternate;
}
.scn-professor-dismisses-clues .figure {
  position: absolute;
  bottom: 26%; left: 10%;
  width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pd-walk 6s ease-in-out infinite;
}
.scn-professor-dismisses-clues .shadow {
  position: absolute;
  bottom: 24%; left: 10%;
  width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: pd-shadow 6s ease-in-out infinite;
}
.scn-professor-dismisses-clues .smoke-base {
  position: absolute;
  bottom: 40%; left: 65%;
  width: 4px; height: 4px;
  background: rgba(200,200,200,.3);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-professor-dismisses-clues .smoke-1,
.scn-professor-dismisses-clues .smoke-2 {
  position: absolute;
  bottom: 42%; left: 65%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, rgba(220,220,220,.4) 0%, rgba(180,180,180,.1) 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-professor-dismisses-clues .smoke-1 {
  animation: pd-smoke 8s ease-out infinite;
}
.scn-professor-dismisses-clues .smoke-2 {
  animation: pd-smoke 8s ease-out infinite 4s;
}
@keyframes pd-wall {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes pd-lamp {
  0% { box-shadow: 0 0 20px 4px rgba(255,208,128,.3), 0 0 40px 10px rgba(255,208,128,.1); opacity: .85; }
  50% { box-shadow: 0 0 40px 10px rgba(255,208,128,.6), 0 0 80px 20px rgba(255,208,128,.25); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(255,208,128,.35), 0 0 50px 14px rgba(255,208,128,.12); opacity: .9; }
}
@keyframes pd-walk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(15px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(30px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(45px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(60px) translateY(0) rotate(0deg); }
}
@keyframes pd-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: .6; }
  50% { transform: translateX(30px) scaleX(1.2); opacity: .8; }
  100% { transform: translateX(60px) scaleX(1); opacity: .6; }
}
@keyframes pd-smoke {
  0% { transform: translateY(0) scale(1); opacity: .6; }
  50% { transform: translateY(-40px) scale(2); opacity: .3; }
  100% { transform: translateY(-80px) scale(3); opacity: 0; }
}

/* holmes-asks-about-cupboard */
.scn-holmes-asks-about-cupboard {
  background: 
    linear-gradient(180deg, #1a1412 0%, #2a1e1a 60%, #1a100e 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-holmes-asks-about-cupboard .bureau-body {
  position: absolute;
  bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 240px; height: 180px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 6px 6px 10px 10px;
  box-shadow: 0 8px 20px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,200,150,.1);
  animation: ha-bureau 6s ease-in-out infinite;
}
.scn-holmes-asks-about-cupboard .bureau-top {
  position: absolute;
  top: 14%; left: 50%; transform: translateX(-50%);
  width: 260px; height: 18px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-holmes-asks-about-cupboard .drawer-1,
.scn-holmes-asks-about-cupboard .drawer-2 {
  position: absolute;
  left: 50%; transform: translateX(-50%);
  width: 180px; height: 30px;
  background: linear-gradient(180deg, #4a3222 0%, #3a2218 100%);
  border: 2px solid #2a1a10;
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
}
.scn-holmes-asks-about-cupboard .drawer-1 { bottom: 58%; }
.scn-holmes-asks-about-cupboard .drawer-2 { bottom: 38%; }
.scn-holmes-asks-about-cupboard .cupboard-door {
  position: absolute;
  left: 50%; transform: translateX(-50%);
  bottom: 18%;
  width: 140px; height: 60px;
  background: linear-gradient(180deg, #4a3222 0%, #3a2218 100%);
  border: 2px solid #2a1a10;
  border-radius: 4px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4);
  animation: ha-door 8s ease-in-out infinite alternate;
}
.scn-holmes-asks-about-cupboard .keyhole {
  position: absolute;
  left: 50%; transform: translateX(-50%);
  bottom: 35%;
  width: 12px; height: 20px;
  background: radial-gradient(ellipse, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 6px 2px rgba(0,0,0,.5);
}
.scn-holmes-asks-about-cupboard .hand {
  position: absolute;
  left: 30%; bottom: 25%;
  width: 18px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ha-hand 6s ease-in-out infinite;
}
.scn-holmes-asks-about-cupboard .letter {
  position: absolute;
  left: 45%; bottom: 18%;
  width: 30px; height: 20px;
  background: linear-gradient(135deg, #c8b888 0%, #a08868 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ha-letter 8s ease-in-out infinite alternate;
}
@keyframes ha-bureau {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes ha-door {
  0% { transform: translateX(-50%) rotateY(0deg); opacity: 1; }
  50% { transform: translateX(-50%) rotateY(30deg); opacity: .8; }
  100% { transform: translateX(-50%) rotateY(0deg); opacity: 1; }
}
@keyframes ha-hand {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(20px) rotate(5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(10px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ha-letter {
  0% { transform: translateY(0) rotate(-2deg); opacity: .7; }
  50% { transform: translateY(-5px) rotate(2deg); opacity: 1; }
  100% { transform: translateY(0) rotate(-2deg); opacity: .7; }
}

/* garden-contemplation */
.scn-garden-contemplation {
  background: 
    linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 40%, #4a5a3a 100%),
    radial-gradient(ellipse at 50% 20%, #a0b090 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-garden-contemplation .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0b8a0 0%, #8a9a7a 100%);
  animation: gc-sky 15s ease-in-out infinite alternate;
}
.scn-garden-contemplation .cloud-1,
.scn-garden-contemplation .cloud-2 {
  position: absolute;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(220,230,210,.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
}
.scn-garden-contemplation .cloud-1 {
  top: 12%; left: 10%;
  width: 100px; height: 30px;
  animation: gc-cloud 40s linear infinite;
}
.scn-garden-contemplation .cloud-2 {
  top: 20%; right: 15%;
  width: 80px; height: 24px;
  animation: gc-cloud 40s linear infinite 20s;
}
.scn-garden-contemplation .grass {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
  animation: gc-grass 8s ease-in-out infinite alternate;
}
.scn-garden-contemplation .tree-trunk {
  position: absolute;
  bottom: 30%; left: 20%;
  width: 20px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4px;
  transform-origin: bottom;
  animation: gc-trunk 12s ease-in-out infinite alternate;
}
.scn-garden-contemplation .tree-foliage {
  position: absolute;
  bottom: 55%; left: 12%;
  width: 80px; height: 60px;
  background: radial-gradient(circle, #6a8a5a 0%, #4a6a3a 70%, #2a4a1a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gc-foliage 10s ease-in-out infinite alternate;
}
.scn-garden-contemplation .bench {
  position: absolute;
  bottom: 22%; left: 55%;
  width: 60px; height: 10px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: gc-bench 6s ease-in-out infinite;
}
.scn-garden-contemplation .figure-sitting {
  position: absolute;
  bottom: 25%; left: 58%;
  width: 16px; height: 30px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gc-sit 5s ease-in-out infinite alternate;
}
.scn-garden-contemplation .leaf-1,
.scn-garden-contemplation .leaf-2 {
  position: absolute;
  width: 8px; height: 6px;
  background: linear-gradient(135deg, #8a7a3a 0%, #6a5a2a 100%);
  border-radius: 50% 0 50% 0;
  opacity: .8;
}
.scn-garden-contemplation .leaf-1 {
  top: 40%; left: 30%;
  animation: gc-leaf 6s ease-in-out infinite;
}
.scn-garden-contemplation .leaf-2 {
  top: 45%; left: 45%;
  animation: gc-leaf 8s ease-in-out infinite 2s;
}
@keyframes gc-sky {
  0% { opacity: .8; }
  50% { opacity: .95; }
  100% { opacity: .85; }
}
@keyframes gc-cloud {
  0% { transform: translateX(-100px); opacity: .5; }
  50% { transform: translateX(calc(100vw - 80px)); opacity: .8; }
  100% { transform: translateX(-100px); opacity: .5; }
}
@keyframes gc-grass {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes gc-trunk {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes gc-foliage {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-3px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes gc-bench {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes gc-sit {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes gc-leaf {
  0% { transform: translateX(0) translateY(0) rotate(0deg) scale(1); opacity: .8; }
  50% { transform: translateX(20px) translateY(-30px) rotate(180deg) scale(.8); opacity: .5; }
  100% { transform: translateX(40px) translateY(-60px) rotate(360deg) scale(1); opacity: 0; }
}

/* cigarettes-as-clue */
.scn-cigarettes-as-clue {
  background: 
    linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 50%, #3a3a2a 100%),
    radial-gradient(ellipse at 50% 100%, #5a5a4a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-cigarettes-as-clue .window-frame {
  position: absolute;
  left: 50%; top: 10%; transform: translateX(-50%);
  width: 200px; height: 260px;
  border: 10px solid #2a2a1a;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,.3);
}
.scn-cigarettes-as-clue .window-glass {
  position: absolute;
  left: 50%; top: 10%; transform: translateX(-50%);
  width: 190px; height: 250px;
  background: linear-gradient(180deg, rgba(200,210,190,.3) 0%, rgba(160,170,150,.2) 100%);
  border-radius: 4px;
  backdrop-filter: blur(2px);
  animation: ca-glass 10s ease-in-out infinite alternate;
}
.scn-cigarettes-as-clue .outside-sky {
  position: absolute;
  left: 50%; top: 12%; transform: translateX(-50%);
  width: 180px; height: 240px;
  background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 100%);
  border-radius: 2px;
  opacity: .3;
  animation: ca-sky 12s ease-in-out infinite alternate;
}
.scn-cigarettes-as-clue .figure-silhouette {
  position: absolute;
  left: 30%; bottom: 15%;
  width: 40px; height: 120px;
  background: linear-gradient(180deg, #1a1a12 0%, #0a0a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-figure 8s ease-in-out infinite;
}
.scn-cigarettes-as-clue .hand {
  position: absolute;
  left: 38%; bottom: 28%;
  width: 14px; height: 24px;
  background: linear-gradient(180deg, #1a1a12 0%, #0a0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: ca-hand 4s ease-in-out infinite alternate;
}
.scn-cigarettes-as-clue .cigarette {
  position: absolute;
  left: 40%; bottom: 32%;
  width: 30px; height: 4px;
  background: linear-gradient(90deg, #c8b080 0%, #2a1a10 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: ca-cigarette 6s ease-in-out infinite;
}
.scn-cigarettes-as-clue .smoke-1,
.scn-cigarettes-as-clue .smoke-2 {
  position: absolute;
  left: 42%; bottom: 34%;
  width: 6px; height: 20px;
  background: linear-gradient(180deg, rgba(220,220,210,.4) 0%, rgba(180,180,170,.1) 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-cigarettes-as-clue .smoke-1 {
  animation: ca-smoke 7s ease-out infinite;
}
.scn-cigarettes-as-clue .smoke-2 {
  animation: ca-smoke 7s ease-out infinite 3.5s;
}
.scn-cigarettes-as-clue .ash-tray {
  position: absolute;
  left: 42%; bottom: 18%;
  width: 40px; height: 12px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.4);
  animation: ca-ash 8s ease-in-out infinite alternate;
}
@keyframes ca-glass {
  0% { opacity: .2; }
  50% { opacity: .4; }
  100% { opacity: .25; }
}
@keyframes ca-sky {
  0% { opacity: .2; background-position: 0 0; }
  50% { opacity: .35; background-position: 0 10px; }
  100% { opacity: .25; background-position: 0 0; }
}
@keyframes ca-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ca-hand {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes ca-cigarette {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-3deg) scaleX(.95); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes ca-smoke {
  0% { transform: translateY(0) scale(1); opacity: .5; }
  50% { transform: translateY(-30px) scale(1.5); opacity: .3; }
  100% { transform: translateY(-60px) scale(2.5); opacity: 0; }
}
@keyframes ca-ash {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

/* Scene: lady-begins-story (tense, bright interior) */
.scn-lady-begins-story {
  background: 
    linear-gradient(180deg, #f5ebd5 0%, #e4d5b6 40%, #c9b089 100%),
    radial-gradient(ellipse at 30% 60%, rgba(255,220,180,0.4) 0%, transparent 70%);
}
.scn-lady-begins-story .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(245,235,213,0.8) 0%, #e4d5b6 100%); }
.scn-lady-begins-story .wall    { position:absolute; top:0; left:60%; width:40%; height:100%; background: linear-gradient(90deg, #d9c2a3 0%, #b39b7a 100%); border-left:2px solid #9a815e; box-shadow: inset -10px 0 20px rgba(0,0,0,.15); }
.scn-lady-begins-story .window { position:absolute; top:15%; left:62%; width:80px; height:100px; background: radial-gradient(circle at 50% 50%, #fff8e7 0%, #e8d6b7 70%); border:4px solid #6b5536; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.5), 0 0 40px rgba(255,220,150,0.3); animation: lbs-window 3s ease-in-out infinite alternate; }
.scn-lady-begins-story .fireplace { position:absolute; bottom:20%; left:10%; width:120px; height:140px; background: linear-gradient(180deg, #8b6b4a 0%, #5a4028 100%); border-radius:20% 20% 8% 8%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.5); overflow:hidden; }
.scn-lady-begins-story .fireplace::after { content:''; position:absolute; bottom:10%; left:20%; width:60%; height:40%; background: radial-gradient(ellipse at 50% 100%, #ff8a4a 0%, #cc5500 60%, transparent); animation: lbs-fire 2s ease-in-out infinite alternate; }
.scn-lady-begins-story .armchair { position:absolute; bottom:15%; left:35%; width:100px; height:80px; background: linear-gradient(180deg, #6a3e2e 0%, #4a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-lady-begins-story .figure   { position:absolute; bottom:18%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:30% 30% 20% 20%; transform-origin:bottom; animation: lbs-figure 4s ease-in-out infinite; }
.scn-lady-begins-story .shadow   { position:absolute; bottom:0; left:30%; width:120px; height:20px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 100%); animation: lbs-shadow 3s ease-in-out infinite alternate; }

@keyframes lbs-window { 
  0% { opacity:0.8; box-shadow: 0 0 20px rgba(255,220,150,0.2); }
  50% { opacity:1; box-shadow: 0 0 40px rgba(255,220,150,0.5); }
  100% { opacity:0.9; box-shadow: 0 0 30px rgba(255,220,150,0.3); }
}
@keyframes lbs-fire { 
  0% { transform: scaleY(0.9); opacity:0.8; }
  50% { transform: scaleY(1.2) scaleX(1.1); opacity:1; }
  100% { transform: scaleY(0.95); opacity:0.85; }
}
@keyframes lbs-figure { 
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes lbs-shadow { 
  0% { transform: scaleX(0.9); opacity:0.5; }
  100% { transform: scaleX(1.1); opacity:0.7; }
}

/* Scene: husband-drunkard (tense, bright interior, silhouette close-up) */
.scn-husband-drunkard {
  background: 
    linear-gradient(180deg, #f0e2c8 0%, #d4c1a0 60%, #b8a080 100%),
    radial-gradient(ellipse at 80% 50%, rgba(255,240,200,0.6) 0%, transparent 80%);
}
.scn-husband-drunkard .bg-light { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,240,0.5) 0%, transparent 100%); }
.scn-husband-drunkard .table    { position:absolute; bottom:20%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.5); }
.scn-husband-drunkard .bottle   { position:absolute; bottom:40%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20%; transform:rotate(-15deg); transform-origin:bottom; animation: hd-bottle 2s ease-in-out infinite alternate; }
.scn-husband-drunkard .glass    { position:absolute; bottom:35%; left:45%; width:24px; height:30px; background: linear-gradient(180deg, rgba(200,180,120,0.3) 0%, #a08040 100%); border-radius:0 0 20% 20%; border:2px solid #8a6a3a; box-shadow: inset 0 -5px 10px rgba(180,140,60,.5); }
.scn-husband-drunkard .hand     { position:absolute; bottom:45%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:30% 30% 20% 20%; transform:rotate(20deg); transform-origin:top; animation: hd-hand 1.5s ease-in-out infinite; }
.scn-husband-drunkard .silhouette { position:absolute; bottom:25%; left:20%; width:60px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 20% 20%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.8); animation: hd-sway 3s ease-in-out infinite; }
.scn-husband-drunkard .spill   { position:absolute; bottom:22%; left:50%; width:40px; height:8px; background: linear-gradient(90deg, #a08040, #806030); border-radius:50%; filter:blur(2px); animation: hd-spread 4s ease-in-out infinite alternate; }

@keyframes hd-bottle { 
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-20deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes hd-hand { 
  0% { transform: rotate(20deg); }
  50% { transform: rotate(30deg) translateX(2px); }
  100% { transform: rotate(20deg); }
}
@keyframes hd-sway { 
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-3px) rotate(-2deg); }
  60% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hd-spread { 
  0% { transform: scaleX(0.8); opacity:0.6; }
  100% { transform: scaleX(1.3); opacity:0.9; }
}

/* Scene: lady-calm-down (tense, close-up of two figures) */
.scn-lady-calm-down {
  background: 
    linear-gradient(180deg, #edd7bc 0%, #cdb396 60%, #a68a6e 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,200,160,0.3) 0%, transparent 80%);
}
.scn-lady-calm-down .bg-room   { position:absolute; inset:0; background: linear-gradient(180deg, rgba(237,215,188,0.9) 0%, #cdb396 100%); }
.scn-lady-calm-down .cushion   { position:absolute; bottom:10%; left:50%; width:100px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,.4); animation: lcd-cush 4s ease-in-out infinite; }
.scn-lady-calm-down .lady-back { position:absolute; bottom:15%; left:38%; width:50px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:30% 30% 20% 20%; transform-origin:bottom; animation: lcd-lady 3s ease-in-out infinite; }
.scn-lady-calm-down .lady-hair { position:absolute; bottom:50%; left:35%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 30%, #1a0a0a 0%, #0a0505 80%); border-radius:60% 60% 30% 30%; animation: lcd-hair 2s ease-in-out infinite alternate; }
.scn-lady-calm-down .maid-hand { position:absolute; bottom:30%; left:55%; width:16px; height:20px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius:30% 30% 10% 10%; transform:rotate(-20deg); transform-origin:bottom; animation: lcd-hand 1.5s ease-in-out infinite alternate; }
.scn-lady-calm-down .maid-arm  { position:absolute; bottom:20%; left:54%; width:10px; height:40px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius:20%; transform:rotate(10deg); transform-origin:top; animation: lcd-arm 2s ease-in-out infinite; }
.scn-lady-calm-down .tear      { position:absolute; bottom:30%; left:40%; width:6px; height:8px; background: radial-gradient(circle, #90c0e0 0%, transparent); border-radius:50%; animation: lcd-tear 2.5s ease-in-out infinite; }

@keyframes lcd-cush { 
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes lcd-lady { 
  0% { transform: translateY(0); }
  30% { transform: translateY(-1px) rotate(1deg); }
  70% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0); }
}
@keyframes lcd-hair { 
  0% { transform: translateX(0) rotate(0); opacity:0.9; }
  50% { transform: translateX(2px) rotate(3deg); opacity:1; }
  100% { transform: translateX(0) rotate(0); opacity:0.9; }
}
@keyframes lcd-hand { 
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-25deg) translateX(-1px); }
  100% { transform: rotate(-20deg); }
}
@keyframes lcd-arm { 
  0% { transform: rotate(10deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(10deg); }
}
@keyframes lcd-tear { 
  0%,100% { transform: translateY(0); opacity:0; }
  50% { transform: translateY(-3px); opacity:0.8; }
  80% { transform: translateY(0); opacity:0.5; }
}

/* Scene: lady's-evening (calm, overhead top-down reading nook) */
.scn-lady's-evening {
  background: 
    linear-gradient(180deg, #e8dac1 0%, #cbb598 50%, #a58a6e 100%),
    radial-gradient(ellipse at 50% 70%, rgba(255,220,160,0.2) 0%, transparent 70%);
}
.scn-lady's-evening .desk-top   { position:absolute; inset:0; background: linear-gradient(135deg, #8a7050 0%, #604830 100%); border-radius:4%; }
.scn-lady's-evening .book-left  { position:absolute; bottom:40%; left:30%; width:60px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30%; transform:rotate(-10deg); transform-origin:left; animation: le-book 6s ease-in-out infinite alternate; }
.scn-lady's-evening .book-right { position:absolute; bottom:40%; left:35%; width:60px; height:40px; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius:30% 30% 10% 10%; transform:rotate(10deg); transform-origin:right; animation: le-book 6s ease-in-out infinite alternate-reverse; }
.scn-lady's-evening .lamp-base  { position:absolute; bottom:20%; right:30%; width:20px; height:30px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius:20%; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-lady's-evening .lamp-shade{ position:absolute; bottom:35%; right:28%; width:40px; height:25px; background: radial-gradient(ellipse at 50% 80%, #f0d8a8 0%, #c8a060 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 -10px 30px rgba(255,200,120,0.6); animation: le-lamp 3s ease-in-out infinite alternate; }
.scn-lady's-evening .teacup    { position:absolute; bottom:55%; left:45%; width:18px; height:14px; background: linear-gradient(180deg, #f5f0e0 0%, #d0c0a0 100%); border-radius:0 0 40% 40%; border:1px solid #a08060; }
.scn-lady's-evening .saucer    { position:absolute; bottom:53%; left:43%; width:24px; height:6px; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.scn-lady's-evening .candle    { position:absolute; bottom:60%; left:85%; width:6px; height:20px; background: linear-gradient(180deg, #f5e8c0 0%, #d0b080 100%); border-radius:20%; transform:rotate(-5deg); animation: le-candle 2s ease-in-out infinite alternate; }

@keyframes le-book { 
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes le-lamp { 
  0% { opacity:0.7; box-shadow: 0 -10px 30px rgba(255,200,120,0.4); }
  50% { opacity:1; box-shadow: 0 -10px 50px rgba(255,200,120,0.8); }
  100% { opacity:0.8; box-shadow: 0 -10px 35px rgba(255,200,120,0.5); }
}
@keyframes le-candle { 
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(-7deg) scaleY(1.1); }
  100% { transform: rotate(-5deg) scaleY(1); }
}

.scn-clever-inquiry {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d6b8 30%, #c8a870 70%, #a08050 100%),
    radial-gradient(ellipse at 20% 60%, rgba(255,255,240,0.6) 0%, transparent 60%);
}
.scn-clever-inquiry .wall { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #f5e6d0 0%, #d4c4a0 100%); }
.scn-clever-inquiry .window { position:absolute; top:15%; right:10%; width:160px; height:220px; background: linear-gradient(180deg, #c0d8f0 0%, #a0b8d0 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3), 0 0 30px rgba(160,184,208,0.4); animation: ci-glow 12s ease-in-out infinite alternate; }
.scn-clever-inquiry .desk { position:absolute; bottom:18%; left:10%; right:10%; height:60px; background: linear-gradient(180deg, #b89860 0%, #8a6a40 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: ci-desk 15s ease-in-out infinite; }
.scn-clever-inquiry .papers { position:absolute; bottom:25%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #f0e8d8 0%, #d4c8b0 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2), 0 4px 12px rgba(0,0,0,0.1); transform-origin: bottom center; animation: ci-papers 8s ease-in-out infinite; }
.scn-clever-inquiry .holmes { position:absolute; bottom:18%; left:40%; width:50px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-figure 6s ease-in-out infinite; }
.scn-clever-inquiry .holmes::after { content:''; position:absolute; top:-15px; left:0; width:50px; height:20px; background: #1a1a2a; border-radius: 50% 50% 0 0 / 100% 100% 0 0; } /* hat */
.scn-clever-inquiry .watson { position:absolute; bottom:18%; right:35%; width:45px; height:95px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-figure 7s ease-in-out infinite reverse; }
.scn-clever-inquiry .chair { position:absolute; bottom:20%; right:20%; width:60px; height:70px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: ci-desk 18s ease-in-out infinite; }

@keyframes ci-glow { 0% { opacity:0.75; box-shadow: inset 0 0 15px rgba(255,255,255,0.2), 0 0 20px rgba(160,184,208,0.3); } 50% { opacity:1; box-shadow: inset 0 0 25px rgba(255,255,255,0.4), 0 0 40px rgba(160,184,208,0.5); } 100% { opacity:0.8; box-shadow: inset 0 0 18px rgba(255,255,255,0.25), 0 0 25px rgba(160,184,208,0.35); } }
@keyframes ci-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ci-papers { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ci-figure { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.015) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }

.scn-success {
  background:
    linear-gradient(180deg, #f0e6d8 0%, #e0d0b8 40%, #c0a870 70%, #806040 100%),
    radial-gradient(ellipse at 80% 30%, rgba(255,255,240,0.7) 0%, transparent 70%);
}
.scn-success .wall { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #f0e6d8 0%, #d4c4a8 100%); }
.scn-success .window { position:absolute; top:10%; left:5%; width:180px; height:240px; background: linear-gradient(180deg, #c8d8f0 0%, #a8b8d0 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3), 0 0 30px rgba(168,184,208,0.4); animation: sc-glow 14s ease-in-out infinite alternate; }
.scn-success .desk { position:absolute; bottom:15%; left:10%; right:15%; height:50px; background: linear-gradient(180deg, #b09060 0%, #806040 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: sc-desk 12s ease-in-out infinite; }
.scn-success .telegram { position:absolute; bottom:28%; left:45%; width:50px; height:30px; background: #f0e8d0; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform-origin: center bottom; animation: sc-telegram 10s ease-in-out infinite; }
.scn-success .holmes { position:absolute; bottom:15%; left:30%; width:55px; height:110px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-holmes 6s ease-in-out infinite; }
.scn-success .holmes::after { content:''; position:absolute; top:-15px; left:0; width:55px; height:22px; background: #1a1a2a; border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-success .watson { position:absolute; bottom:15%; right:20%; width:45px; height:95px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-watson 8s ease-in-out infinite; }
.scn-success .hands { position:absolute; bottom:32%; left:38%; width:30px; height:20px; background: #2a1a1a; border-radius: 50%; transform-origin: center; animation: sc-rub 4s ease-in-out infinite; }
.scn-success .chair { position:absolute; bottom:18%; right:30%; width:50px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: sc-desk 16s ease-in-out infinite; }

@keyframes sc-glow { 0% { opacity:0.7; box-shadow: inset 0 0 15px rgba(255,255,255,0.2), 0 0 20px rgba(168,184,208,0.3); } 50% { opacity:1; box-shadow: inset 0 0 25px rgba(255,255,255,0.4), 0 0 40px rgba(168,184,208,0.5); } 100% { opacity:0.8; box-shadow: inset 0 0 18px rgba(255,255,255,0.25), 0 0 25px rgba(168,184,208,0.35); } }
@keyframes sc-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes sc-telegram { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(2deg); } 66% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sc-holmes { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes sc-watson { 0% { transform: scaleY(1) translateY(0) rotate(0deg); } 50% { transform: scaleY(1.01) translateY(-1px) rotate(2deg); } 100% { transform: scaleY(1) translateY(0) rotate(0deg); } }
@keyframes sc-rub { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(8deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-8deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-theories-on-way {
  background:
    linear-gradient(180deg, #1a1020 0%, #2a1a30 30%, #1a1a2a 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 20% 80%, #2a1a30 0%, transparent 70%);
}
.scn-theories-on-way .carriage-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a30 0%, #1a1020 20%, #1a1020 80%, #2a1a30 100%); }
.scn-theories-on-way .window { position:absolute; top:20%; left:15%; width:80px; height:100px; background: linear-gradient(180deg, #203040 0%, #102030 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,20,40,0.6); animation: tw-window 20s ease-in-out infinite alternate; }
.scn-theories-on-way .seat { position:absolute; bottom:20%; left:10%; right:10%; height:40px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:20% 20% 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,0.5); animation: tw-seat 15s ease-in-out infinite; }
.scn-theories-on-way .holmes { position:absolute; bottom:20%; left:25%; width:45px; height:95px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tw-figure 6s ease-in-out infinite; }
.scn-theories-on-way .holmes::after { content:''; position:absolute; top:-12px; left:0; width:45px; height:18px; background: #1a1a2a; border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-theories-on-way .watson { position:absolute; bottom:20%; right:25%; width:40px; height:90px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tw-figure 7s ease-in-out infinite reverse; }
.scn-theories-on-way .lantern { position:absolute; top:10%; left:45%; width:12px; height:18px; background: radial-gradient(circle, #d08040 0%, #a06030 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 0 20px 6px rgba(208,128,64,0.5); transform-origin: top center; animation: tw-lantern 5s ease-in-out infinite; }
.scn-theories-on-way .curtain { position:absolute; top:18%; right:10%; width:40px; height:90px; background: linear-gradient(180deg, #4a3030 0%, #2a1818 100%); border-radius:0 20% 20% 0 / 0 30% 30% 0; animation: tw-curtain 12s ease-in-out infinite alternate; }

@keyframes tw-window { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes tw-seat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes tw-figure { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes tw-lantern { 0% { transform: rotate(-10deg); } 25% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 75% { transform: rotate(0deg); } 100% { transform: rotate(-10deg); } }
@keyframes tw-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(-5px); } }

.scn-betting-theory {
  background:
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 30%, #1a1010 70%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-betting-theory .wall { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1010 100%); }
.scn-betting-theory .table { position:absolute; bottom:10%; left:10%; right:10%; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: bt-table 18s ease-in-out infinite; }
.scn-betting-theory .lamp { position:absolute; top:15%; left:45%; width:30px; height:40px; background: linear-gradient(180deg, #b08040 0%, #8a6030 100%); border-radius: 40% 40% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4); transform-origin: bottom center; animation: bt-lamp 7s ease-in-out infinite; }
.scn-betting-theory .lamp-glow { position:absolute; top:10%; left:35%; width:80px; height:100px; background: radial-gradient(ellipse, rgba(200,160,80,0.3) 0%, transparent 70%); border-radius:50%; animation: bt-glow 5s ease-in-out infinite alternate; }
.scn-betting-theory .papers { position:absolute; bottom:25%; left:30%; width:60px; height:20px; background: #d4c0a0; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform-origin: left bottom; animation: bt-papers 11s ease-in-out infinite; }
.scn-betting-theory .holmes { position:absolute; bottom:10%; left:25%; width:50px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bt-holmes 6s ease-in-out infinite; }
.scn-betting-theory .holmes::after { content:''; position:absolute; top:-15px; left:0; width:50px; height:20px; background: #1a1a2a; border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-betting-theory .chair { position:absolute; bottom:12%; right:20%; width:55px; height:65px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: bt-table 20s ease-in-out infinite; }

@keyframes bt-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-0.5px); } }
@keyframes bt-lamp { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes bt-glow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes bt-papers { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(1deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bt-holmes { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }

.scn-next-day {
  background: linear-gradient(180deg, #f7f0e0 0%, #e8dcc4 100%), radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 60%);
}
.scn-next-day .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #d4c8a8 0%, #e0d4b8 50%, #d4c8a8 100%); 
}
.scn-next-day .window {
  position: absolute; top: 8%; left: 12%; width: 30%; height: 40%; background: linear-gradient(180deg, #fffde8 0%, #fff8e0 100%); border-radius: 4px; box-shadow: 0 0 40px 20px rgba(255,248,224,0.3); animation: nd-window 8s ease-in-out infinite alternate;
}
.scn-next-day .chair-left {
  position: absolute; bottom: 12%; left: 15%; width: 20%; height: 40%; background: linear-gradient(135deg, #7a5a3a 0%, #4a3020 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: nd-chair 12s ease-in-out infinite;
}
.scn-next-day .chair-right {
  position: absolute; bottom: 12%; right: 15%; width: 20%; height: 40%; background: linear-gradient(135deg, #7a5a3a 0%, #4a3020 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-next-day .holmes {
  position: absolute; bottom: 18%; left: 18%; width: 14%; height: 30%; background: linear-gradient(180deg, #2a3a4a 0%, #141c24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nd-figure 7s ease-in-out infinite alternate;
}
.scn-next-day .watson {
  position: absolute; bottom: 18%; right: 18%; width: 14%; height: 30%; background: linear-gradient(180deg, #2a3a3a 0%, #141c1c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nd-figure 7s ease-in-out infinite alternate-reverse;
}
.scn-next-day .table {
  position: absolute; bottom: 14%; left: 35%; width: 30%; height: 10%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-next-day .pipe {
  position: absolute; bottom: 28%; left: 23%; width: 6%; height: 4%; background: #5a3a1a; border-radius: 50%; box-shadow: 0 -2px 4px rgba(0,0,0,0.4); animation: nd-pipe 3s ease-in-out infinite alternate;
}
.scn-next-day .smoke-a {
  position: absolute; bottom: 30%; left: 24%; width: 3%; height: 3%; background: rgba(220,210,190,0.5); border-radius: 50%; filter: blur(4px); animation: nd-smoke 6s ease-out infinite;
}
.scn-next-day .smoke-b {
  position: absolute; bottom: 30%; left: 24%; width: 3%; height: 3%; background: rgba(220,210,190,0.5); border-radius: 50%; filter: blur(4px); animation: nd-smoke 8s ease-out infinite 2s;
}
@keyframes nd-window {
  0% { opacity: 0.9; box-shadow: 0 0 30px 15px rgba(255,248,224,0.2); }
  50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,248,224,0.4); }
  100% { opacity: 0.85; box-shadow: 0 0 20px 10px rgba(255,248,224,0.15); }
}
@keyframes nd-chair {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
}
@keyframes nd-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes nd-pipe {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes nd-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.3; }
  100% { transform: translateY(-40px) scale(2); opacity: 0; }
}

.scn-holmes-refuses {
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 100%), radial-gradient(ellipse at 50% 80%, #fff8e8 0%, transparent 70%);
}
.scn-holmes-refuses .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c8b8a8 0%, #d8c8b8 50%, #c8b8a8 100%);
}
.scn-holmes-refuses .door {
  position: absolute; top: 5%; right: 5%; width: 20%; height: 85%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,0.3); transform-origin: right center; animation: hr-door 14s ease-in-out infinite;
}
.scn-holmes-refuses .chair-holmes {
  position: absolute; bottom: 10%; left: 12%; width: 22%; height: 42%; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: hr-chair 10s ease-in-out infinite alternate;
}
.scn-holmes-refuses .chair-lestrade {
  position: absolute; bottom: 10%; right: 25%; width: 20%; height: 40%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-holmes-refuses .holmes {
  position: absolute; bottom: 16%; left: 15%; width: 16%; height: 32%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hr-figure 6s ease-in-out infinite alternate;
}
.scn-holmes-refuses .lestrade {
  position: absolute; bottom: 16%; right: 27%; width: 16%; height: 32%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hr-figure 6s ease-in-out infinite alternate-reverse;
}
.scn-holmes-refuses .table {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 8%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-holmes-refuses .hat {
  position: absolute; bottom: 45%; right: 28%; width: 10%; height: 8%; background: #3a2a1a; border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: hr-hat 5s ease-in-out infinite alternate;
}
.scn-holmes-refuses .carpet {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 12%; background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 25%, #5a3a2a 50%, #8a6a5a 75%, #6a4a3a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: hr-carpet 20s ease-in-out infinite alternate;
}
@keyframes hr-door {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.01) rotate(1deg); }
  100% { transform: scaleY(1) rotate(-1deg); }
}
@keyframes hr-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hr-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes hr-hat {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes hr-carpet {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

.scn-holmes-recognizes-photo {
  background: linear-gradient(180deg, #e0d8c8 0%, #c8c0b0 100%), radial-gradient(ellipse at 40% 30%, #fff0d0 0%, transparent 60%);
}
.scn-holmes-recognizes-photo .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #b8a898 0%, #c8b8a8 50%, #b8a898 100%);
}
.scn-holmes-recognizes-photo .window {
  position: absolute; top: 6%; left: 8%; width: 25%; height: 35%; background: linear-gradient(180deg, #fff8e0 0%, #f0e8d0 100%); border-radius: 4px; box-shadow: 0 0 30px 15px rgba(255,248,224,0.25); animation: hrp-window 10s ease-in-out infinite alternate;
}
.scn-holmes-recognizes-photo .desk {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 12%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-holmes-recognizes-photo .chair {
  position: absolute; bottom: 12%; left: 10%; width: 18%; height: 38%; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: hrp-chair 9s ease-in-out infinite alternate;
}
.scn-holmes-recognizes-photo .holmes {
  position: absolute; bottom: 16%; left: 12%; width: 14%; height: 30%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hrp-holmes 5s ease-in-out infinite alternate;
}
.scn-holmes-recognizes-photo .photo {
  position: absolute; bottom: 28%; left: 40%; width: 8%; height: 10%; background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform: rotate(-5deg); animation: hrp-photo 8s ease-in-out infinite alternate;
}
.scn-holmes-recognizes-photo .magnifier {
  position: absolute; bottom: 30%; left: 35%; width: 6%; height: 6%; background: radial-gradient(circle, #c0e0f0 0%, #8090a0 70%); border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,0.3); animation: hrp-mag 4s ease-in-out infinite alternate;
}
.scn-holmes-recognizes-photo .books {
  position: absolute; top: 10%; right: 10%; width: 15%; height: 60%; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
}
.scn-holmes-recognizes-photo .thought {
  position: absolute; top: 18%; left: 35%; width: 10%; height: 10%; background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: hrp-thought 3s ease-in-out infinite alternate;
}
@keyframes hrp-window {
  0% { opacity: 0.8; box-shadow: 0 0 20px 10px rgba(255,248,224,0.2); }
  50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,248,224,0.4); }
  100% { opacity: 0.85; box-shadow: 0 0 25px 12px rgba(255,248,224,0.25); }
}
@keyframes hrp-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hrp-holmes {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes hrp-photo {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-7deg) translateY(0); }
}
@keyframes hrp-mag {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes hrp-thought {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

.scn-lestrade-visits {
  background: linear-gradient(180deg, #e8e0d0 0%, #d8d0c0 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
}
.scn-lestrade-visits .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c8b8a8 0%, #d8c8b8 50%, #c8b8a8 100%);
}
.scn-lestrade-visits .fireplace {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 30%; height: 30%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 20px 10px rgba(200,100,50,0.3); animation: lv-fire 8s ease-in-out infinite alternate;
}
.scn-lestrade-visits .chair-holmes {
  position: absolute; bottom: 10%; left: 10%; width: 20%; height: 40%; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: lv-chair 11s ease-in-out infinite alternate;
}
.scn-lestrade-visits .chair-lestrade {
  position: absolute; bottom: 10%; right: 10%; width: 20%; height: 40%; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-lestrade-visits .holmes {
  position: absolute; bottom: 16%; left: 13%; width: 14%; height: 30%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lv-figure 6s ease-in-out infinite alternate;
}
.scn-lestrade-visits .lestrade {
  position: absolute; bottom: 16%; right: 13%; width: 14%; height: 30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lv-figure 6s ease-in-out infinite alternate-reverse;
}
.scn-lestrade-visits .table {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 8%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-lestrade-visits .tea-cups {
  position: absolute; bottom: 16%; left: 42%; width: 6%; height: 6%; background: radial-gradient(circle, #e0d0b0 0%, #c0a880 70%); border-radius: 50%; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: lv-cup 5s ease-in-out infinite alternate;
}
.scn-lestrade-visits .clock {
  position: absolute; top: 8%; right: 15%; width: 8%; height: 12%; background: radial-gradient(circle, #c0b090 0%, #8a7a6a 70%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: lv-clock 60s linear infinite;
}
@keyframes lv-fire {
  0% { box-shadow: 0 0 15px 8px rgba(200,100,50,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 30px 15px rgba(200,100,50,0.4); opacity: 1; }
  100% { box-shadow: 0 0 20px 10px rgba(200,100,50,0.25); opacity: 0.95; }
}
@keyframes lv-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes lv-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes lv-cup {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes lv-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Scene: holmes-critical */
.scn-holmes-critical {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9c3a0 40%, #b89a7a 100%),
              radial-gradient(ellipse at 40% 30%, #fff5e0 0%, transparent 60%);
}
.scn-holmes-critical .room { position:absolute; inset:0; background: linear-gradient(180deg, #ebdcc6 0%, #cbb08e 70%); animation: hc-room 20s ease-in-out infinite alternate; }
.scn-holmes-critical .window { position:absolute; top:15%; left:20%; right:40%; bottom:50%; background: linear-gradient(180deg, #fffbe6 0%, #b3cce6 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.6); animation: hc-window 12s ease-in-out infinite alternate; }
.scn-holmes-critical .desk { position:absolute; bottom:12%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #6b4a2e 0%, #4d351e 100%); border-radius: 2px 2px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: hc-desk 8s ease-in-out infinite; }
.scn-holmes-critical .lamp { position:absolute; bottom:30%; left:55%; width:20px; height:30px; background: radial-gradient(circle, #ffe680 0%, #e6b800 70%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 30px 10px #ffcc66, 0 0 60px 20px rgba(255,204,102,0.3); animation: hc-lamp 4s ease-in-out infinite alternate; }
.scn-holmes-critical .holmes { position:absolute; bottom:12%; left:30%; width:14px; height:26px; background: linear-gradient(180deg, #2c1e0e 0%, #0f0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-figure 5s ease-in-out infinite; }
.scn-holmes-critical .watson { position:absolute; bottom:12%; left:60%; width:16px; height:28px; background: linear-gradient(180deg, #3d2812 0%, #1a0f05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-figure 5s ease-in-out 1.5s infinite; }
.scn-holmes-critical .papers { position:absolute; bottom:15%; left:35%; right:40%; height:6%; background: linear-gradient(180deg, #faf3e0 0%, #d9c69a 100%); border-radius: 1px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: hc-papers 10s ease-in-out infinite alternate; }
.scn-holmes-critical .pipe { position:absolute; bottom:28%; left:34%; width:30px; height:4px; background: linear-gradient(90deg, #5c3a1a 0%, #8a6028 60%, #5c3a1a 100%); border-radius: 50% 50% 0 0; transform: rotate(25deg); animation: hc-pipe 7s ease-in-out infinite alternate; }
@keyframes hc-room    { 0% { opacity:0.9; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.05); } 100% { opacity:0.95; filter: brightness(0.98); } }
@keyframes hc-window  { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes hc-desk    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hc-lamp    { 0% { box-shadow: 0 0 20px 5px #ffcc66, 0 0 40px 10px rgba(255,204,102,0.3); } 50% { box-shadow: 0 0 40px 15px #ffdd77, 0 0 80px 30px rgba(255,221,119,0.5); } 100% { box-shadow: 0 0 25px 8px #ffcc66, 0 0 50px 15px rgba(255,204,102,0.35); } }
@keyframes hc-figure  { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hc-papers  { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hc-pipe    { 0%,100% { transform: rotate(20deg); } 50% { transform: rotate(30deg); } }

/* Scene: holmes-questions-details */
.scn-holmes-questions-details {
  background: linear-gradient(180deg, #f0e0c8 0%, #d0b890 40%, #b09870 100%),
              radial-gradient(ellipse at 60% 25%, #fff8e8 0%, transparent 70%);
}
.scn-holmes-questions-details .room { position:absolute; inset:0; background: linear-gradient(180deg, #e8d5b8 0%, #c8ad8a 100%); animation: hqd-room 25s ease-in-out infinite alternate; }
.scn-holmes-questions-details .window { position:absolute; top:10%; left:5%; right:70%; bottom:45%; background: linear-gradient(180deg, #fef9e3 0%, #aac8e0 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.7); animation: hqd-window 15s ease-in-out infinite alternate; }
.scn-holmes-questions-details .curtain { position:absolute; top:8%; left:2%; right:72%; bottom:43%; background: linear-gradient(180deg, #8b7355 0%, #5a4a34 100%); border-radius: 50% 0% 0% 50% / 60% 0% 0% 40%; filter: blur(2px); opacity:0.4; animation: hqd-curtain 20s ease-in-out infinite alternate; }
.scn-holmes-questions-details .table { position:absolute; bottom:15%; left:30%; right:10%; height:20%; background: linear-gradient(180deg, #6b4a2e 0%, #4d351e 100%); border-radius: 6px 6px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: hqd-table 10s ease-in-out infinite; }
.scn-holmes-questions-details .chair { position:absolute; bottom:10%; left:15%; width:20px; height:30px; background: linear-gradient(180deg, #4a3520 0%, #261a0c 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform-origin: bottom center; animation: hqd-chair 6s ease-in-out infinite alternate; }
.scn-holmes-questions-details .lamp { position:absolute; bottom:32%; left:40%; width:18px; height:28px; background: radial-gradient(circle, #ffe680 0%, #d4a000 70%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 8px #ffcc66, 0 0 60px 20px rgba(255,204,102,0.3); animation: hqd-lamp 5s ease-in-out infinite alternate; }
.scn-holmes-questions-details .clock { position:absolute; top:15%; right:10%; width:20px; height:35px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform-origin: top center; animation: hqd-clock 12s ease-in-out infinite alternate; }
.scn-holmes-questions-details .rug { position:absolute; bottom:0; left:10%; right:10%; height:12%; background: linear-gradient(90deg, #6d5a42 0%, #8a7355 25%, #6d5a42 50%, #8a7355 75%, #6d5a42 100%); border-radius: 50% 50% 0 0; opacity:0.6; animation: hqd-rug 18s ease-in-out infinite alternate; }
.scn-holmes-questions-details .vase { position:absolute; bottom:15%; left:70%; width:10px; height:20px; background: linear-gradient(180deg, #8a6040 0%, #5a3a22 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; animation: hqd-vase 7s ease-in-out infinite alternate; }
@keyframes hqd-room     { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes hqd-window   { 0% { opacity:0.5; box-shadow: inset 0 0 10px rgba(255,255,200,0.4); } 50% { opacity:0.8; box-shadow: inset 0 0 40px rgba(255,255,200,0.8); } 100% { opacity:0.6; box-shadow: inset 0 0 20px rgba(255,255,200,0.6); } }
@keyframes hqd-curtain  { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes hqd-table    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hqd-chair    { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes hqd-lamp     { 0% { box-shadow: 0 0 20px 4px #ffcc66, 0 0 40px 10px rgba(255,204,102,0.3); } 50% { box-shadow: 0 0 40px 12px #ffdd77, 0 0 80px 25px rgba(255,221,119,0.5); } 100% { box-shadow: 0 0 25px 6px #ffcc66, 0 0 50px 15px rgba(255,204,102,0.35); } }
@keyframes hqd-clock    { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes hqd-rug      { 0% { opacity:0.4; background-position: 0% 0%; } 50% { opacity:0.7; background-position: 100% 0%; } 100% { opacity:0.5; background-position: 0% 0%; } }
@keyframes hqd-vase     { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }

/* Scene: holmes-reasoning-about-bicycle */
.scn-holmes-reasoning-about-bicycle {
  background: linear-gradient(135deg, #d9c8aa 0%, #b8a080 50%, #9a8060 100%),
              radial-gradient(circle at 50% 40%, #fff4e0 0%, transparent 80%);
}
.scn-holmes-reasoning-about-bicycle .bg-top { position:absolute; inset:0; background: linear-gradient(180deg, #e0cdb0 0%, #c8ad8a 100%); animation: hrb-bg 30s ease-in-out infinite alternate; }
.scn-holmes-reasoning-about-bicycle .table { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #6b4a2e 0%, #4d351e 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,0.4); animation: hrb-table 12s ease-in-out infinite; }
.scn-holmes-reasoning-about-bicycle .wheel { position:absolute; bottom:35%; left:35%; width:60px; height:60px; background: radial-gradient(circle, #3a2a1a 20%, #1a0f05 30%, #5a4020 60%, #1a0f05 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 0 15px #0a0602; animation: hrb-wheel 8s linear infinite; }
.scn-holmes-reasoning-about-bicycle .tool { position:absolute; bottom:28%; left:55%; width:8px; height:25px; background: linear-gradient(180deg, #7a5a30 0%, #4a3020 100%); border-radius:20% 20% 10% 10%; transform:rotate(15deg); animation: hrb-tool 6s ease-in-out infinite alternate; }
.scn-holmes-reasoning-about-bicycle .notebook { position:absolute; bottom:30%; left:60%; width:25px; height:20px; background: linear-gradient(180deg, #f5f0e0 0%, #d9c8a0 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform:rotate(-10deg); animation: hrb-note 10s ease-in-out infinite alternate; }
.scn-holmes-reasoning-about-bicycle .lamp { position:absolute; bottom:40%; left:20%; width:16px; height:24px; background: radial-gradient(circle, #ffe680 0%, #d4a000 70%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 8px #ffcc66, 0 0 60px 20px rgba(255,204,102,0.4); animation: hrb-lamp 5s ease-in-out infinite alternate; }
.scn-holmes-reasoning-about-bicycle .hand { position:absolute; bottom:23%; left:45%; width:12px; height:16px; background: linear-gradient(180deg, #4a3520 0%, #261a0c 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hrb-hand 7s ease-in-out infinite alternate; }
@keyframes hrb-bg    { 0% { opacity:0.9; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.03); } 100% { opacity:0.95; filter: brightness(0.98); } }
@keyframes hrb-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes hrb-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes hrb-tool  { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(1px); } }
@keyframes hrb-note  { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes hrb-lamp  { 0% { box-shadow: 0 0 20px 4px #ffcc66, 0 0 40px 10px rgba(255,204,102,0.3); } 50% { box-shadow: 0 0 40px 12px #ffdd77, 0 0 80px 25px rgba(255,221,119,0.5); } 100% { box-shadow: 0 0 25px 6px #ffcc66, 0 0 50px 15px rgba(255,204,102,0.35); } }
@keyframes hrb-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(-2deg); } }

/* Scene: holmes-questions-letters */
.scn-holmes-questions-letters {
  background: linear-gradient(180deg, #e0d0b5 0%, #c0a88a 50%, #a08060 100%),
              radial-gradient(ellipse at 30% 60%, #fff8e8 0%, transparent 70%);
}
.scn-holmes-questions-letters .doorframe { position:absolute; top:0; left:10%; right:10%; bottom:0; border: 6px solid #4a3520; border-bottom:none; background: transparent; box-shadow: inset 0 0 0 2px #2a1a0c; animation: hql-frame 20s ease-in-out infinite alternate; }
.scn-holmes-questions-letters .door { position:absolute; top:5%; left:20%; right:20%; bottom:0; background: linear-gradient(180deg, #6b4a2e 0%, #4d351e 100%); border-radius: 4px 4px 0 0; box-shadow: -2px 0 6px rgba(0,0,0,0.3); animation: hql-door 25s ease-in-out infinite alternate; }
.scn-holmes-questions-letters .desk { position:absolute; bottom:15%; left:25%; right:25%; height:25%; background: linear-gradient(180deg, #6b4a2e 0%, #4d351e 100%); border-radius: 6px 6px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: hql-desk 12s ease-in-out infinite; }
.scn-holmes-questions-letters .chair { position:absolute; bottom:15%; left:30%; width:18px; height:28px; background: linear-gradient(180deg, #4a3520 0%, #261a0c 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform-origin: bottom center; animation: hql-chair 7s ease-in-out infinite alternate; }
.scn-holmes-questions-letters .figure { position:absolute; bottom:12%; left:35%; width:16px; height:30px; background: linear-gradient(180deg, #2c1e0e 0%, #0f0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hql-figure 5s ease-in-out infinite; }
.scn-holmes-questions-letters .letters { position:absolute; top:30%; left:40%; right:20%; bottom:50%; background: repeating-linear-gradient(180deg, #f5f0e0 0px, #f5f0e0 4px, transparent 4px, transparent 8px); background-size: 100% 8px; animation: hql-letters 15s linear infinite; }
.scn-holmes-questions-letters .inkwell { position:absolute; bottom:28%; left:45%; width:8px; height:10px; background: radial-gradient(circle, #2a1a0c 0%, #0f0a04 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: hql-ink 9s ease-in-out infinite alternate; }
.scn-holmes-questions-letters .lamp { position:absolute; bottom:35%; left:20%; width:18px; height:26px; background: radial-gradient(circle, #ffe680 0%, #d4a000 70%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 8px #ffcc66, 0 0 60px 20px rgba(255,204,102,0.3); animation: hql-lamp 5s ease-in-out infinite alternate; }
@keyframes hql-frame { 0% { opacity:0.8; border-color: #4a3520; } 50% { opacity:1; border-color: #5a4530; } 100% { opacity:0.9; border-color: #4a3520; } }
@keyframes hql-door  { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes hql-desk  { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes hql-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes hql-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hql-letters { 0% { transform: translateY(0); } 50% { transform: translateY(-10px); opacity:0.8; } 100% { transform: translateY(0); } }
@keyframes hql-ink    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hql-lamp   { 0% { box-shadow: 0 0 20px 4px #ffcc66, 0 0 40px 10px rgba(255,204,102,0.3); } 50% { box-shadow: 0 0 40px 12px #ffdd77, 0 0 80px 25px rgba(255,221,119,0.5); } 100% { box-shadow: 0 0 25px 6px #ffcc66, 0 0 50px 15px rgba(255,204,102,0.35); } }

/* Scene: year-1894-manuscripts */
.scn-year-1894-manuscripts {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #dcc8a8 60%, #b8946a 100%),
    radial-gradient(ellipse at 20% 30%, rgba(255,240,210,0.6) 0%, transparent 70%);
}
.scn-year-1894-manuscripts .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b6b4a 0%, #5a3a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-year-1894-manuscripts .book {
  position: absolute; bottom: 28%; left: 50%; width: 200px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c8a878 0%, #a08050 50%, #7a6040 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: s1-book 8s ease-in-out infinite;
}
.scn-year-1894-manuscripts .page-left {
  position: absolute; bottom: 30%; left: 50%; width: 90px; height: 100px;
  transform: translateX(-105%);
  background: linear-gradient(180deg, #faf0dc 0%, #e8dcc8 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.1);
  animation: s1-page-flip 12s ease-in-out infinite alternate;
}
.scn-year-1894-manuscripts .page-right {
  position: absolute; bottom: 30%; left: 50%; width: 90px; height: 100px;
  transform: translateX(5%);
  background: linear-gradient(180deg, #faf0dc 0%, #e8dcc8 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.1);
  animation: s1-page-flip 12s ease-in-out infinite alternate-reverse;
}
.scn-year-1894-manuscripts .inkwell {
  position: absolute; bottom: 32%; left: 55%; width: 20px; height: 24px;
  background: radial-gradient(circle at 30% 30%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-year-1894-manuscripts .quill {
  position: absolute; bottom: 38%; left: 57%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #f0e8d8 0%, #c8b898 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform-origin: 100% 100%;
  animation: s1-quill 4s ease-in-out infinite alternate;
}
.scn-year-1894-manuscripts .paper-stack {
  position: absolute; bottom: 26%; left: 38%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #f5edd0 0%, #dfd4b0 50%, #c8b898 100%);
  border-radius: 4px;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.2);
  animation: s1-stack 10s ease-in-out infinite;
}
@keyframes s1-book {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.005); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes s1-page-flip {
  0% { transform: translateX(-105%) rotateY(0deg); opacity: 1; }
  50% { transform: translateX(-105%) rotateY(-5deg); opacity: 0.95; }
  100% { transform: translateX(-105%) rotateY(0deg); opacity: 1; }
}
@keyframes s1-quill {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-5px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes s1-stack {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

/* Scene: other-cases-mentioned */
.scn-other-cases-mentioned {
  background:
    linear-gradient(180deg, #ebe3d0 0%, #d6cbb0 50%, #b8a888 100%),
    radial-gradient(ellipse at 80% 20%, rgba(255,245,220,0.5) 0%, transparent 70%);
}
.scn-other-cases-mentioned .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a08060 100%);
  border-bottom: 4px solid #5a3a2a;
}
.scn-other-cases-mentioned .map {
  position: absolute; top: 10%; left: 15%; width: 60%; height: 50%;
  background: linear-gradient(135deg, #d4c4a0 0%, #b89870 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: s2-map-float 20s ease-in-out infinite alternate;
}
.scn-other-cases-mentioned .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 28%;
  background: linear-gradient(180deg, #8b6b4a 0%, #5a3a2a 100%);
  border-radius: 8px 8px 0 0;
}
.scn-other-cases-mentioned .paper-left {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #faf0dc 0%, #e8dcc8 100%);
  border-radius: 2px;
  box-shadow: 1px 2px 4px rgba(0,0,0,0.15);
  animation: s2-paper-drift 14s ease-in-out infinite;
}
.scn-other-cases-mentioned .paper-right {
  position: absolute; bottom: 22%; left: 45%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #faf0dc 0%, #d8c8a8 100%);
  border-radius: 2px;
  box-shadow: 1px 2px 4px rgba(0,0,0,0.15);
  animation: s2-paper-drift 16s ease-in-out infinite reverse;
}
.scn-other-cases-mentioned .inkwell {
  position: absolute; bottom: 18%; left: 65%; width: 18px; height: 22px;
  background: radial-gradient(circle at 30% 30%, #3a3a3a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20%;
}
.scn-other-cases-mentioned .quill {
  position: absolute; bottom: 28%; left: 67%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #f0e8d8 0%, #c8b898 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform-origin: 100% 100%;
  animation: s2-quill 5s ease-in-out infinite alternate;
}
.scn-other-cases-mentioned .lamp {
  position: absolute; bottom: 30%; left: 80%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #d0a060 0%, #a08040 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,0.4);
  animation: s2-lamp-glow 6s ease-in-out infinite alternate;
}
@keyframes s2-map-float {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes s2-paper-drift {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes s2-quill {
  0% { transform: rotate(-8deg) scaleY(1); }
  50% { transform: rotate(8deg) scaleY(1.05); }
  100% { transform: rotate(-4deg) scaleY(1); }
}
@keyframes s2-lamp-glow {
  0% { box-shadow: 0 0 12px 4px rgba(200,160,80,0.3); }
  50% { box-shadow: 0 0 28px 8px rgba(200,160,80,0.6); }
  100% { box-shadow: 0 0 16px 5px rgba(200,160,80,0.35); }
}

/* Scene: yoxley-old-place-case */
.scn-yoxley-old-place-case {
  background:
    linear-gradient(180deg, #d4c8b0 0%, #b8a888 50%, #9a7a5a 100%),
    radial-gradient(ellipse at 30% 80%, rgba(240,220,190,0.5) 0%, transparent 60%);
}
.scn-yoxley-old-place-case .window-frame {
  position: absolute; inset: 10% 10% 20% 10%;
  border: 12px solid #5a3a2a;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 0 4px #3a2a1a;
}
.scn-yoxley-old-place-case .curtain-left {
  position: absolute; top: 10%; left: 10%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #b89870 0%, #8a6a50 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  animation: s3-curtain 12s ease-in-out infinite alternate;
}
.scn-yoxley-old-place-case .curtain-right {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #b89870 0%, #8a6a50 100%);
  border-radius: 60% 0 0 60% / 40% 0 0 40%;
  animation: s3-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-yoxley-old-place-case .sky {
  position: absolute; top: 15%; left: 30%; right: 30%; bottom: 22%;
  background: linear-gradient(180deg, #aad0e8 0%, #7ab4d4 100%);
  border-radius: 4px;
}
.scn-yoxley-old-place-case .manor-house {
  position: absolute; bottom: 25%; left: 35%; width: 35%; height: 30%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3020 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: s3-house-bob 15s ease-in-out infinite;
}
.scn-yoxley-old-place-case .tree {
  position: absolute; bottom: 25%; left: 25%; width: 40px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 20% 20%;
  animation: s3-tree 10s ease-in-out infinite alternate;
}
.scn-yoxley-old-place-case .lawn {
  position: absolute; bottom: 22%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #4a8a4a 0%, #2a5a2a 100%);
  border-radius: 0 0 20px 20px;
}
.scn-yoxley-old-place-case .bird {
  position: absolute; top: 18%; left: 20%; width: 12px; height: 8px;
  background: radial-gradient(circle, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50%;
  animation: s3-bird 25s linear infinite;
}
@keyframes s3-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes s3-house-bob {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes s3-tree {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes s3-bird {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(30vw) translateY(-10px); }
  50% { transform: translateX(60vw) translateY(0); }
  75% { transform: translateX(90vw) translateY(-5px); }
  100% { transform: translateX(120vw) translateY(0); }
}

/* Scene: stormy-november-night */
.scn-stormy-november-night {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 50%, #050510 100%),
    radial-gradient(ellipse at 30% 60%, rgba(200,100,30,0.4) 0%, transparent 70%);
}
.scn-stormy-november-night .room-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #151520 0%, #0a0a12 100%);
  border-bottom: 2px solid #2a1a0a;
}
.scn-stormy-november-night .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-stormy-november-night .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-stormy-november-night .holmes {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: s4-holmes 8s ease-in-out infinite;
}
.scn-stormy-november-night .holmes-arm {
  position: absolute; bottom: 40%; left: 30%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: 0 50%;
  animation: s4-arm 6s ease-in-out infinite alternate;
}
.scn-stormy-november-night .watson {
  position: absolute; bottom: 20%; right: 25%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: s4-watson 10s ease-in-out infinite;
}
.scn-stormy-november-night .window {
  position: absolute; top: 5%; right: 5%; width: 80px; height: 120px;
  background: linear-gradient(180deg, rgba(20,40,60,0.7) 0%, rgba(10,20,30,0.9) 100%);
  border: 4px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: s4-rain 2s linear infinite;
}
.scn-stormy-november-night .fire {
  position: absolute; bottom: 12%; left: 10%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 80%, #ff8c40 0%, #cc5000 40%, #3a1a00 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 12px rgba(255,140,64,0.5), 0 0 60px 24px rgba(200,80,0,0.3);
  animation: s4-fire 0.8s ease-in-out infinite alternate;
}
@keyframes s4-holmes {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes s4-arm {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(5px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes s4-watson {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes s4-rain {
  0% { background-image: linear-gradient(180deg, rgba(20,40,60,0.7) 0%, rgba(10,20,30,0.9) 100%); }
  50% { background-image: linear-gradient(180deg, rgba(30,50,70,0.7) 0%, rgba(15,25,35,0.9) 100%); }
  100% { background-image: linear-gradient(180deg, rgba(20,40,60,0.7) 0%, rgba(10,20,30,0.9) 100%); }
}
@keyframes s4-fire {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; box-shadow: 0 0 30px 12px rgba(255,140,64,0.5); }
  50% { transform: scaleY(1.2) scaleX(0.95); opacity: 1; box-shadow: 0 0 40px 18px rgba(255,140,64,0.6); }
  100% { transform: scaleY(0.9) scaleX(1.05); opacity: 0.85; box-shadow: 0 0 25px 10px rgba(255,140,64,0.4); }
}

/* Scene: progress-in-case */
.scn-progress-in-case {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c3a0 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-progress-in-case .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #cbb89a 100%);
  animation: pic-wall 10s ease-in-out infinite alternate;
}
.scn-progress-in-case .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #b89a6e 0%, #d4b88a 100%);
}
.scn-progress-in-case .bureau {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 90px; transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5e3a 0%, #4a3520 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 2px 4px 10px rgba(0,0,0,0.3);
  animation: pic-bureau 8s ease-in-out infinite alternate;
}
.scn-progress-in-case .door {
  position: absolute; bottom: 25%; left: 20%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #8b7355 0%, #5e4530 100%);
  border-radius: 2% 2% 6% 6%; box-shadow: inset 0 0 8px rgba(0,0,0,0.2);
  animation: pic-door 6s ease-in-out infinite;
}
.scn-progress-in-case .figure-lady {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pic-figure 4s ease-in-out infinite alternate;
}
.scn-progress-in-case .key {
  position: absolute; bottom: 48%; left: 49%; width: 12px; height: 6px;
  background: radial-gradient(circle, #d4a853 0%, #b08030 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 8px 2px rgba(180,128,48,0.6);
  animation: pic-key 3s ease-in-out infinite alternate;
}
.scn-progress-in-case .scratch {
  position: absolute; bottom: 42%; left: 22%; width: 20px; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #5e4530 50%, transparent 100%);
  border-radius: 50%;
  animation: pic-scratch 5s ease-in-out infinite;
}
@keyframes pic-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pic-bureau { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes pic-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes pic-figure { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-2deg) } }
@keyframes pic-key { 0% { transform: rotate(0deg) scale(1); box-shadow: 0 0 6px 1px rgba(180,128,48,0.5); } 50% { transform: rotate(15deg) scale(1.1); box-shadow: 0 0 12px 4px rgba(180,128,48,0.8); } 100% { transform: rotate(0deg) scale(1); box-shadow: 0 0 6px 1px rgba(180,128,48,0.5); } }
@keyframes pic-scratch { 0% { opacity: 0; width: 0 } 30% { opacity: 1; width: 20px } 70% { opacity: 1; width: 20px } 100% { opacity: 0; width: 0 } }

/* Scene: susan-questioned */
.scn-susan-questioned {
  background: linear-gradient(180deg, #f0e4d0 0%, #d8c8b0 40%, #c0b09a 100%), radial-gradient(ellipse at 50% 100%, #e8d8c0 0%, transparent 70%);
}
.scn-susan-questioned .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a88a 100%);
  animation: suq-wall 12s ease-in-out infinite alternate;
}
.scn-susan-questioned .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #a08060 0%, #c8b090 100%);
}
.scn-susan-questioned .door {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #7a6040 0%, #4a3018 100%);
  border-radius: 2% 2% 6% 6%; box-shadow: 2px 2px 10px rgba(0,0,0,0.2);
  animation: suq-door 8s ease-in-out infinite;
}
.scn-susan-questioned .figure-susan {
  position: absolute; bottom: 12%; left: 28%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: suq-figureS 5s ease-in-out infinite alternate;
}
.scn-susan-questioned .figure-holmes {
  position: absolute; bottom: 14%; left: 52%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: suq-figureH 5s ease-in-out infinite alternate 1s;
}
.scn-susan-questioned .carpet {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: repeating-linear-gradient(90deg, #8b7355 0px, #8b7355 8px, #6b5335 8px, #6b5335 16px);
  border-radius: 10% 10% 0 0;
  animation: suq-carpet 15s linear infinite;
}
.scn-susan-questioned .light {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,240,200,0.3) 0%, transparent 100%);
  animation: suq-light 6s ease-in-out infinite alternate;
}
@keyframes suq-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes suq-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } 100% { transform: scaleX(1) } }
@keyframes suq-figureS { 0% { transform: rotate(-1deg) translateX(0) } 50% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(-1deg) translateX(0) } }
@keyframes suq-figureH { 0% { transform: rotate(1deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(-2px) } 100% { transform: rotate(1deg) translateX(0) } }
@keyframes suq-carpet { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }
@keyframes suq-light { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }

/* Scene: professor-corridor */
.scn-professor-corridor {
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 30%, #a89878 100%), radial-gradient(ellipse at 50% 0%, #f0e4c8 0%, transparent 70%);
}
.scn-professor-corridor .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #b8a888 0%, #d8c8a8 100%);
  animation: pro-ceiling 20s ease-in-out infinite alternate;
}
.scn-professor-corridor .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #887860 0%, #a09070 100%);
  animation: pro-floor 20s ease-in-out infinite alternate;
}
.scn-professor-corridor .wall-left {
  position: absolute; top: 25%; bottom: 25%; left: 0; width: 30%;
  background: linear-gradient(90deg, #c0b098 0%, #b0a088 100%);
  transform-origin: left center;
  animation: pro-wallL 15s ease-in-out infinite alternate;
}
.scn-professor-corridor .wall-right {
  position: absolute; top: 25%; bottom: 25%; right: 0; width: 30%;
  background: linear-gradient(270deg, #c0b098 0%, #b0a088 100%);
  transform-origin: right center;
  animation: pro-wallR 15s ease-in-out infinite alternate;
}
.scn-professor-corridor .door {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%); width: 70px; height: 110px;
  background: linear-gradient(180deg, #6a5038 0%, #3a2818 100%);
  border-radius: 2% 2% 4% 4%; box-shadow: 2px 2px 10px rgba(0,0,0,0.3);
  animation: pro-door 8s ease-in-out infinite;
}
.scn-professor-corridor .figure-prof {
  position: absolute; bottom: 15%; left: 38%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1a0a 0%, #150a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pro-figure 6s ease-in-out infinite alternate;
}
.scn-professor-corridor .matting {
  position: absolute; bottom: 8%; left: 8%; right: 8%; height: 18%;
  background: repeating-linear-gradient(90deg, #887860 0px, #887860 6px, #705840 6px, #705840 12px);
  border-radius: 10% 10% 0 0;
  animation: pro-matting 12s linear infinite;
}
@keyframes pro-ceiling { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes pro-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes pro-wallL { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } 100% { transform: scaleX(1) } }
@keyframes pro-wallR { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } 100% { transform: scaleX(1) } }
@keyframes pro-door { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.98) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes pro-figure { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes pro-matting { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }

/* Scene: professor-bedroom */
.scn-professor-bedroom {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 50%, #4a3520 0%, transparent 60%);
}
.scn-professor-bedroom .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #4a3520 0%, #3a2510 100%);
  animation: pbe-wall 12s ease-in-out infinite alternate;
}
.scn-professor-bedroom .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2510 100%);
}
.scn-professor-bedroom .bookshelf {
  position: absolute; bottom: 10%; left: 5%; width: 50%; height: 60%;
  background: linear-gradient(180deg, #5e4530 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: pbe-shelf 10s ease-in-out infinite alternate;
}
.scn-professor-bedroom .book-pile-1 {
  position: absolute; bottom: 8%; left: 20%; width: 40px; height: 16px;
  background: linear-gradient(90deg, #8b7355 0%, #6b5335 50%, #9a8060 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pbe-book1 6s ease-in-out infinite alternate;
}
.scn-professor-bedroom .book-pile-2 {
  position: absolute; bottom: 6%; left: 28%; width: 30px; height: 20px;
  background: linear-gradient(90deg, #705840 0%, #4a3520 50%, #806848 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pbe-book2 8s ease-in-out infinite alternate 2s;
}
.scn-professor-bedroom .lamp {
  position: absolute; bottom: 45%; left: 70%; width: 16px; height: 24px;
  background: radial-gradient(circle, #d4a853 0%, #b08030 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 4px rgba(180,128,48,0.6), 0 0 40px 8px rgba(180,128,48,0.3);
  animation: pbe-lamp 3s ease-in-out infinite alternate;
}
.scn-professor-bedroom .figure {
  position: absolute; bottom: 18%; left: 45%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a100a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbe-figure 5s ease-in-out infinite alternate;
}
@keyframes pbe-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes pbe-shelf { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes pbe-book1 { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pbe-book2 { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pbe-lamp { 0% { box-shadow: 0 0 15px 3px rgba(180,128,48,0.4), 0 0 30px 6px rgba(180,128,48,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 25px 6px rgba(180,128,48,0.7), 0 0 50px 12px rgba(180,128,48,0.4); opacity: 1 } 100% { box-shadow: 0 0 15px 3px rgba(180,128,48,0.4), 0 0 30px 6px rgba(180,128,48,0.2); opacity: 0.8 } }
@keyframes pbe-figure { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-1deg) } }

.scn-overton-foreboding { background: linear-gradient(180deg, #f2e8d0 0%, #d4c4a0 50%, #b89a7a 100%), radial-gradient(ellipse at 20% 60%, #fae8d0 0%, transparent 70%); }
.scn-overton-foreboding .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 100%); }
.scn-overton-foreboding .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a08050 0%, #705030 100%); }
.scn-overton-foreboding .fireplace { position:absolute; bottom:20%; left:15%; width:80px; height:100px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5); }
.scn-overton-foreboding .armchair { position:absolute; bottom:15%; right:20%; width:70px; height:60px; background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:30% 30% 20% 20%; transform: rotate(-2deg); animation: otf-chair 6s ease-in-out infinite; }
.scn-overton-foreboding .window { position:absolute; top:10%; right:10%; width:60px; height:80px; background: linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 100%); border:3px solid #5a3a2a; border-radius:10%; animation: otf-window 8s ease-in-out infinite alternate; }
.scn-overton-foreboding .lamp { position:absolute; bottom:25%; left:35%; width:20px; height:30px; background: radial-gradient(circle, #ffe8b0 0%, #d4a040 70%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 40px 10px rgba(255,232,176,0.6); animation: otf-lamp 4s ease-in-out infinite alternate; }
.scn-overton-foreboding .silhouette { position:absolute; bottom:15%; right:25%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: otf-silhouette 5s ease-in-out infinite; }
@keyframes otf-chair { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes otf-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes otf-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,232,176,0.4); } 50% { box-shadow: 0 0 50px 15px rgba(255,232,176,0.8); } 100% { box-shadow: 0 0 30px 8px rgba(255,232,176,0.5); } }
@keyframes otf-silhouette { 0%,100% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } }

.scn-syringe-trick { background: linear-gradient(180deg, #f0e4d0 0%, #d4c0a0 50%, #b09878 100%), radial-gradient(ellipse at 80% 50%, #e8d4b0 0%, transparent 70%); }
.scn-syringe-trick .desk { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:2% 2% 0 0; }
.scn-syringe-trick .syringe { position:absolute; bottom:35%; left:30%; width:60px; height:10px; background: linear-gradient(90deg, #c0c0c0 0%, #e8e8e8 50%, #a0a0a0 100%); border-radius:20px; transform: rotate(-30deg); animation: syt-syringe 2s ease-in-out infinite; }
.scn-syringe-trick .lamp { position:absolute; bottom:40%; left:10%; width:30px; height:40px; background: radial-gradient(circle, #ffe8c0 0%, #d4a860 70%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 30px 8px rgba(255,232,192,0.5); animation: syt-lamp 3s ease-in-out infinite alternate; }
.scn-syringe-trick .inkwell { position:absolute; bottom:30%; right:20%; width:20px; height:20px; background: radial-gradient(circle, #3a2a1a 0%, #1a0a0a 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-syringe-trick .paper { position:absolute; bottom:30%; left:45%; width:50px; height:40px; background: linear-gradient(135deg, #f8f0e0 0%, #e8dcc8 100%); border-radius:2%; transform: rotate(5deg); animation: syt-paper 10s ease-in-out infinite; }
.scn-syringe-trick .chair { position:absolute; bottom:5%; left:50%; width:60px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:30% 30% 20% 20%; transform: translateX(-50%); animation: syt-chair 7s ease-in-out infinite; }
@keyframes syt-syringe { 0%,100% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-28deg) translateY(-1px); } }
@keyframes syt-lamp { 0% { box-shadow: 0 0 20px 4px rgba(255,232,192,0.4); opacity:0.8; } 100% { box-shadow: 0 0 40px 12px rgba(255,232,192,0.7); opacity:1; } }
@keyframes syt-paper { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes syt-chair { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-48%) rotate(2deg); } }

.scn-pompey-introduced { background: linear-gradient(180deg, #d4c8a8 0%, #b8a888 50%, #9a8870 100%), radial-gradient(ellipse at 50% 30%, #e8dcc0 0%, transparent 80%); }
.scn-pompey-introduced .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); }
.scn-pompey-introduced .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); }
.scn-pompey-introduced .stall-door { position:absolute; bottom:20%; left:10%; width:80px; height:80px; background: linear-gradient(90deg, #8a7050 0%, #6a5030 100%); border-radius:5% 5% 0 0; box-shadow: inset -2px 0 6px rgba(0,0,0,0.3); animation: pmi-door 8s ease-in-out infinite; }
.scn-pompey-introduced .dog { position:absolute; bottom:20%; left:35%; width:50px; height:30px; background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a8 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pmi-dog 2s ease-in-out infinite; }
.scn-pompey-introduced .hay { position:absolute; bottom:18%; right:20%; width:40px; height:20px; background: linear-gradient(180deg, #b8a050 0%, #887030 100%); border-radius:30% 30% 20% 20%; animation: pmi-hay 5s ease-in-out infinite; }
.scn-pompey-introduced .bucket { position:absolute; bottom:20%; right:35%; width:25px; height:30px; background: linear-gradient(180deg, #a8a0a0 0%, #888080 100%); border-radius:10% 10% 20% 20%; transform: scaleY(0.8); animation: pmi-bucket 6s ease-in-out infinite; }
@keyframes pmi-door { 0%,100% { transform: rotateY(0); } 50% { transform: rotateY(3deg); } }
@keyframes pmi-dog { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } }
@keyframes pmi-hay { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes pmi-bucket { 0%,100% { transform: scaleY(0.8) rotate(0); } 50% { transform: scaleY(0.85) rotate(2deg); } }

.scn-aniseed-trick { background: linear-gradient(180deg, #b0b8c0 0%, #9098a0 50%, #707880 100%), radial-gradient(ellipse at 50% 0%, #c0c8d0 0%, transparent 70%); }
.scn-aniseed-trick .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 100%); animation: ant-sky 15s ease-in-out infinite alternate; }
.scn-aniseed-trick .road { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a7a72 0%, #5a5a52 100%); clip-path: polygon(0 20%, 100% 10%, 100% 100%, 0 100%); animation: ant-road 12s ease-in-out infinite; }
.scn-aniseed-trick .hedge { position:absolute; bottom:35%; left:5%; width:30%; height:10%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius:40% 40% 0 0; animation: ant-hedge 20s ease-in-out infinite; }
.scn-aniseed-trick .syringe-small { position:absolute; bottom:35%; left:50%; width:20px; height:4px; background: #a0a0a0; border-radius:10px; transform: rotate(20deg); animation: ant-syringe 4s ease-in-out infinite; }
.scn-aniseed-trick .figure-far { position:absolute; bottom:30%; right:20%; width:12px; height:24px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ant-figure 6s ease-in-out infinite; }
@keyframes ant-sky { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(1.02); } 100% { opacity:0.7; transform: scaleY(0.98); } }
@keyframes ant-road { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ant-hedge { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes ant-syringe { 0%,100% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-1px); } }
@keyframes ant-figure { 0%,100% { transform: rotate(0) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } }

/* Scene: wife's-illness (wi) — bright interior, tense mood */
.scn-wife\u0027s-illness {
  background:
    linear-gradient(180deg, #f5ead0 0%, #d4c8a8 40%, #b8a88a 100%),
    radial-gradient(ellipse at 60% 50%, #fff5e6 0%, #e0d4b8 60%, transparent 80%);
}
.scn-wife\u0027s-illness .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8ddc0 0%, #c8b898 100%);
  box-shadow: inset 0 -20px 60px rgba(0,0,0,.15);
  animation: wi-room-pulse 12s ease-in-out infinite alternate;
}
.scn-wife\u0027s-illness .window-glow {
  position: absolute; top: 8%; left: 55%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,245,220,.9) 0%, rgba(255,235,200,.3) 40%, transparent 70%);
  filter: blur(12px);
  animation: wi-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-wife\u0027s-illness .window-frame {
  position: absolute; top: 10%; left: 58%; width: 22%; height: 46%;
  border: 6px solid #8a7a5a; border-radius: 4px;
  background: linear-gradient(135deg, #fff8e8 0%, #e8dcc0 100%);
  box-shadow: inset 0 0 30px rgba(255,235,200,.6), 0 8px 20px rgba(0,0,0,.3);
  transform: perspective(800px) rotateY(-3deg);
  animation: wi-frame-shimmer 6s ease-in-out infinite;
}
.scn-wife\u0027s-illness .figure-boy {
  position: absolute; bottom: 28%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%);
  border-radius: 45% 45% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wi-walk 3s ease-in-out infinite;
}
.scn-wife\u0027s-illness .table {
  position: absolute; bottom: 22%; left: 48%; width: 50px; height: 36px;
  background: linear-gradient(180deg, #6a5038 0%, #4a3520 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.4);
  transform: perspective(600px) rotateX(6deg);
  animation: wi-table-settle 9s ease-in-out infinite;
}
.scn-wife\u0027s-illness .chair {
  position: absolute; bottom: 22%; left: 54%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: wi-chair-creak 5s ease-in-out infinite;
}
.scn-wife\u0027s-illness .clock {
  position: absolute; top: 12%; right: 16%; width: 28px; height: 28px;
  background: radial-gradient(circle, #d4b88a 0%, #8a7040 70%);
  border-radius: 50%; border: 3px solid #5a4028;
  box-shadow: 0 2px 12px rgba(0,0,0,.3);
  animation: wi-clock-swing 2s ease-in-out infinite;
}
.scn-wife\u0027s-illness .shadow-pool {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.25) 0%, transparent 70%);
  animation: wi-shadow-grow 4s ease-in-out infinite alternate;
}
@keyframes wi-room-pulse {
  0% { opacity: .85; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: .9; filter: brightness(.98); }
}
@keyframes wi-glow-pulse {
  0% { transform: scale(.95); opacity: .7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(.98); opacity: .8; }
}
@keyframes wi-frame-shimmer {
  0% { box-shadow: inset 0 0 20px rgba(255,235,200,.4); }
  50% { box-shadow: inset 0 0 40px rgba(255,245,220,.8); }
  100% { box-shadow: inset 0 0 25px rgba(255,235,200,.5); }
}
@keyframes wi-walk {
  0% { transform: translateX(-4px) rotate(-2deg); }
  25% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(4px) rotate(-2deg); }
  75% { transform: translateX(8px) rotate(1deg); }
  100% { transform: translateX(-4px) rotate(0deg); }
}
@keyframes wi-table-settle {
  0%,100% { transform: perspective(600px) rotateX(6deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(6deg) translateY(-1px); }
}
@keyframes wi-chair-creak {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(1deg) translateX(1px); }
  75% { transform: rotate(-1deg) translateX(-1px); }
}
@keyframes wi-clock-swing {
  0%,100% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
}
@keyframes wi-shadow-grow {
  0% { transform: scaleY(.8); opacity: .6; }
  100% { transform: scaleY(1.2); opacity: .9; }
}

/* Scene: holmes-grasps-hand (hg) — warm mood, bright interior, pale sunlight */
.scn-holmes-grasps-hand {
  background:
    linear-gradient(180deg, #d8e0e8 0%, #b0c0d0 50%, #8898a8 100%),
    radial-gradient(ellipse at 70% 60%, rgba(255,250,240,.6) 0%, transparent 60%);
}
.scn-holmes-grasps-hand .wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 35%;
  background: linear-gradient(180deg, #c8d0d8 0%, #b0b8c0 100%);
  box-shadow: inset -10px 0 30px rgba(0,0,0,.1);
  animation: hg-wall-dance 14s ease-in-out infinite alternate;
}
.scn-holmes-grasps-hand .wall-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 35%;
  background: linear-gradient(180deg, #c8d0d8 0%, #b0b8c0 100%);
  box-shadow: inset 10px 0 30px rgba(0,0,0,.1);
  animation: hg-wall-dance 14s ease-in-out infinite alternate-reverse;
}
.scn-holmes-grasps-hand .doorway {
  position: absolute; left: 35%; right: 35%; top: 0; bottom: 10%;
  background: linear-gradient(180deg, #e8ece8 0%, #d0d8d8 100%);
  border-radius: 0 0 30px 30px;
  box-shadow: inset 0 -20px 60px rgba(0,0,0,.12);
}
.scn-holmes-grasps-hand .winter-light {
  position: absolute; left: 40%; right: 40%; top: 5%; bottom: 15%;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,250,240,.8) 0%, rgba(200,210,220,.2) 60%, transparent 80%);
  filter: blur(8px);
  animation: hg-light-breathe 6s ease-in-out infinite alternate;
}
.scn-holmes-grasps-hand .holmes-figure {
  position: absolute; bottom: 15%; left: 40%; width: 24px; height: 72px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2830 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: hg-stand-sway 8s ease-in-out infinite;
}
.scn-holmes-grasps-hand .watson-figure {
  position: absolute; bottom: 15%; left: 50%; width: 26px; height: 68px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3828 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: hg-stand-sway 8s ease-in-out infinite -2s;
}
.scn-holmes-grasps-hand .hands-grasp {
  position: absolute; bottom: 35%; left: 46%; width: 14px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #d4c8a8 0%, #b0a088 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
  animation: hg-grasp-squeeze 4s ease-in-out infinite;
}
.scn-holmes-grasps-hand .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #a8b0a8 0%, #889088 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.1);
}
@keyframes hg-wall-dance {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .92; }
}
@keyframes hg-light-breathe {
  0% { transform: scale(.97); opacity: .7; }
  50% { transform: scale(1.05); opacity: .95; }
  100% { transform: scale(1); opacity: .85; }
}
@keyframes hg-stand-sway {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes hg-grasp-squeeze {
  0%,100% { transform: scale(1); opacity: .8; }
  50% { transform: scale(1.1); opacity: 1; }
}

/* Scene: frosty-morning-wake (fm) — tense mood, dim interior, candlelight */
.scn-frosty-morning-wake {
  background:
    linear-gradient(180deg, #1a1a24 0%, #2a2028 40%, #1a1218 100%),
    radial-gradient(ellipse at 55% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-frosty-morning-wake .wall-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1e1a1a 0%, #2a2222 100%);
  box-shadow: inset 0 -30px 80px rgba(0,0,0,.5);
  animation: fm-wall-throb 10s ease-in-out infinite alternate;
}
.scn-frosty-morning-wake .bed-frame {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 8px 8px 20px 20px;
  box-shadow: 0 8px 30px rgba(0,0,0,.6);
  animation: fm-bed-creak 7s ease-in-out infinite;
}
.scn-frosty-morning-wake .watson-body {
  position: absolute; bottom: 30%; left: 40%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fm-wake-stir 5s ease-in-out infinite;
}
.scn-frosty-morning-wake .blanket {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 16%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 20px rgba(0,0,0,.4);
  animation: fm-blanket-shift 6s ease-in-out infinite alternate;
}
.scn-frosty-morning-wake .holmes-figure {
  position: absolute; bottom: 22%; left: 52%; width: 22px; height: 68px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a18 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: fm-holmes-bend 4s ease-in-out infinite;
}
.scn-frosty-morning-wake .candle-glow {
  position: absolute; bottom: 48%; left: 56%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 70%, rgba(255,200,120,.8) 0%, rgba(255,180,80,.3) 40%, transparent 70%);
  filter: blur(10px);
  animation: fm-candle-flicker 2s ease-in-out infinite alternate;
}
.scn-frosty-morning-wake .candle {
  position: absolute; bottom: 42%; left: 58%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8c88a 0%, #c8a86a 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(255,200,100,.6);
  animation: fm-candle-sway 3s ease-in-out infinite;
}
.scn-frosty-morning-wake .shadow-sway {
  position: absolute; left: 30%; right: 20%; top: 10%; bottom: 10%;
  background: radial-gradient(ellipse at 60% 50%, rgba(0,0,0,.35) 0%, transparent 60%);
  filter: blur(20px);
  animation: fm-shadow-move 5s ease-in-out infinite alternate;
}
@keyframes fm-wall-throb {
  0% { opacity: .85; filter: brightness(.95); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: .9; filter: brightness(.98); }
}
@keyframes fm-bed-creak {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes fm-wake-stir {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-3px); }
  50% { transform: rotate(-2deg) translateY(-1px); }
  75% { transform: rotate(4deg) translateY(-4px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes fm-blanket-shift {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(1px) scaleX(.98); }
}
@keyframes fm-holmes-bend {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(8deg) translateY(-4px); }
  60% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes fm-candle-flicker {
  0% { transform: scale(.9); opacity: .7; }
  50% { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(1); opacity: .85; }
}
@keyframes fm-candle-sway {
  0%,100% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
}
@keyframes fm-shadow-move {
  0% { transform: scale(1) translateX(0); opacity: .5; }
  50% { transform: scale(1.1) translateX(8px); opacity: .7; }
  100% { transform: scale(.95) translateX(-4px); opacity: .55; }
}

/* Scene: train-to-kent (tk) — calm mood, dim interior, cool winter */
.scn-train-to-kent {
  background:
    linear-gradient(180deg, #2a3040 0%, #3a4050 40%, #4a5060 100%),
    radial-gradient(ellipse at 40% 50%, #1a2030 0%, transparent 60%);
}
.scn-train-to-kent .compartment-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 50%, #2a2a3a 100%);
  box-shadow: inset 0 -20px 60px rgba(0,0,0,.4);
  animation: tk-wall-hum 18s ease-in-out infinite alternate;
}
.scn-train-to-kent .seat-left {
  position: absolute; bottom: 18%; left: 8%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  transform: perspective(800px) rotateY(8deg);
  animation: tk-seat-rock 12s ease-in-out infinite;
}
.scn-train-to-kent .seat-right {
  position: absolute; bottom: 18%; right: 8%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  transform: perspective(800px) rotateY(-8deg);
  animation: tk-seat-rock 12s ease-in-out infinite -4s;
}
.scn-train-to-kent .train-window {
  position: absolute; top: 6%; left: 22%; right: 22%; height: 36%;
  background: linear-gradient(180deg, #6a7a8a 0%, #8898a8 100%);
  border-radius: 6px;
  border: 8px solid #2a2a3a;
  box-shadow: inset 0 0 40px rgba(100,120,140,.4);
  overflow: hidden;
  animation: tk-window-fade 20s ease-in-out infinite alternate;
}
.scn-train-to-kent .landscape-drift {
  position: absolute; top: 6%; left: 22%; right: 22%; height: 36%;
  background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 50%, #4a5a6a 100%);
  border-radius: 6px;
  opacity: .5;
  animation: tk-landscape-scroll 30s linear infinite;
}
.scn-train-to-kent .holmes-figure {
  position: absolute; bottom: 22%; left: 15%; width: 22px; height: 64px;
  background: linear-gradient(180deg, #1a2830 0%, #0a1820 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: tk-train-sway 6s ease-in-out infinite;
}
.scn-train-to-kent .watson-figure {
  position: absolute; bottom: 22%; left: 62%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a3030 0%, #182020 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: tk-train-sway 6s ease-in-out infinite -3s;
}
.scn-train-to-kent .steam-rise {
  position: absolute; bottom: 60%; left: 28%; right: 28%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,210,220,.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: tk-steam-drift 8s ease-in-out infinite alternate;
}
.scn-train-to-kent .tea-cups {
  position: absolute; bottom: 28%; left: 30%; width: 14px; height: 14px;
  background: radial-gradient(circle at 50% 40%, #c8a060 0%, #a08040 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: tk-cup-rattle 5s ease-in-out infinite;
}
@keyframes tk-wall-hum {
  0% { opacity: .9; filter: brightness(.98); }
  50% { opacity: 1; filter: brightness(1.02); }
  100% { opacity: .92; filter: brightness(1); }
}
@keyframes tk-seat-rock {
  0%,100% { transform: perspective(800px) rotateY(8deg) translateY(0); }
  50% { transform: perspective(800px) rotateY(8deg) translateY(-2px); }
}
@keyframes tk-window-fade {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes tk-landscape-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes tk-train-sway {
  0%,100% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
}
@keyframes tk-steam-drift {
  0% { transform: translateY(0) scaleX(1); opacity: .3; }
  50% { transform: translateY(-10px) scaleX(1.2); opacity: .5; }
  100% { transform: translateY(-5px) scaleX(.9); opacity: .2; }
}
@keyframes tk-cup-rattle {
  0%,100% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(2deg) translateX(1px); }
  75% { transform: rotate(-2deg) translateX(-1px); }
}

/* night-quadrangle */
.scn-night-quadrangle { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 50%, #0d0d2a 100%), radial-gradient(ellipse at 50% 0%, #2a2a5e 0%, transparent 60%); }
.scn-night-quadrangle .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f0f2f, #1a1a3e); animation: nq-sky 20s ease-in-out infinite alternate; }
.scn-night-quadrangle .stars { position:absolute; top:5%; left:0; width:100%; height:30%; background: radial-gradient(2px 2px at 20% 30%, #fff, transparent), radial-gradient(1px 1px at 40% 70%, #fff, transparent), radial-gradient(2px 2px at 60% 20%, #fff, transparent), radial-gradient(1px 1px at 80% 50%, #fff, transparent); animation: nq-stars 5s ease-in-out infinite; }
.scn-night-quadrangle .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.8); }
.scn-night-quadrangle .building { position:absolute; bottom:20%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #2a2a3a, #1a1a2a); border-radius: 5% 5% 0 0; box-shadow: 0 -5px 20px rgba(0,0,0,.6); }
.scn-night-quadrangle .windows { position:absolute; bottom:30%; left:30%; width:40%; height:20%; background: repeating-linear-gradient(90deg, #f0c060 0px, #f0c060 8px, transparent 8px, transparent 20px); animation: nq-windows 4s ease-in-out infinite alternate; }
.scn-night-quadrangle .figure { position:absolute; bottom:25%; left:45%; width:12px; height:30px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nq-figure 3s ease-in-out infinite; }
@keyframes nq-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes nq-stars { 0% { transform: scale(1); opacity:0.7 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.95); opacity:0.8 } }
@keyframes nq-windows { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nq-figure { 0% { transform: translateX(0) } 25% { transform: translateX(15px) } 50% { transform: translateX(30px) } 75% { transform: translateX(15px) } 100% { transform: translateX(0) } }

/* initial-suspicions */
.scn-initial-suspicions { background: linear-gradient(180deg, #1a1a2e, #2a2a3e, #1a1a2a), radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 60%); }
.scn-initial-suspicions .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #151525, #1e1e30); }
.scn-initial-suspicions .window-frame { position:absolute; top:10%; left:15%; width:70%; height:70%; border: 6px solid #2a2a3a; border-radius: 5%; background: radial-gradient(ellipse at 50% 50%, #3a3a5e 0%, #1a1a2e 100%); animation: is-window 8s ease-in-out infinite alternate; }
.scn-initial-suspicions .silhouette-outside { position:absolute; top:30%; left:35%; width:14px; height:35px; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: is-pace 4s ease-in-out infinite; }
.scn-initial-suspicions .table { position:absolute; bottom:20%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, #4a3a2a, #3a2a1a); border-radius: 20% 20% 10% 10%; }
.scn-initial-suspicions .lamp { position:absolute; top:60%; left:40%; width:10px; height:20px; background: #b08040; border-radius: 10% 10% 50% 50%; box-shadow: 0 0 20px 5px #c08040; animation: is-lamp 3s ease-in-out infinite alternate; }
.scn-initial-suspicions .glow-lamp { position:absolute; top:55%; left:36%; width:30px; height:30px; background: radial-gradient(circle, rgba(192,128,64,0.4) 0%, transparent 70%); animation: is-glow 3s ease-in-out infinite alternate; }
@keyframes is-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } }
@keyframes is-pace { 0% { transform: translateX(-20px); } 25% { transform: translateX(-10px); } 50% { transform: translateX(0); } 75% { transform: translateX(10px); } 100% { transform: translateX(20px); } }
@keyframes is-lamp { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.9; } }
@keyframes is-glow { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.5; } }

/* no-clue-there */
.scn-no-clue-there { background: linear-gradient(180deg, #2a1a1a, #1a1010, #0a0a0a), radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%); }
.scn-no-clue-there .bg-study { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a1a, #2a2a2a, #1a1a1a); }
.scn-no-clue-there .desk { position:absolute; bottom:15%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 10% 10% 5% 5%; box-shadow: 0 10px 30px rgba(0,0,0,.5); }
.scn-no-clue-there .pencils { position:absolute; bottom:30%; left:30%; width:40%; height:5%; background: repeating-linear-gradient(90deg, #c08040 0px, #c08040 6px, transparent 6px, transparent 12px, #d0a060 12px, #d0a060 18px, transparent 18px, transparent 24px); border-radius: 2px; animation: nc-pencils 10s ease-in-out infinite; }
.scn-no-clue-there .knife { position:absolute; bottom:33%; left:60%; width:30px; height:4px; background: #808080; border-radius: 2px; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: nc-knife 12s ease-in-out infinite; }
.scn-no-clue-there .lamp-study { position:absolute; top:30%; left:20%; width:12px; height:25px; background: linear-gradient(180deg, #b08040, #8a6030); border-radius: 30% 30% 50% 50%; box-shadow: 0 0 25px 5px #b08040; animation: nc-lamp 4s ease-in-out infinite alternate; }
.scn-no-clue-there .figure-servant { position:absolute; top:25%; right:15%; width:14px; height:40px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nc-servant 6s ease-in-out infinite; }
@keyframes nc-pencils { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes nc-knife { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-20deg); } }
@keyframes nc-lamp { 0% { box-shadow: 0 0 15px 3px #b08040; } 50% { box-shadow: 0 0 35px 8px #d09050; } 100% { box-shadow: 0 0 20px 5px #b08040; } }
@keyframes nc-servant { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }

/* stationer-search */
.scn-stationer-search { background: linear-gradient(180deg, #f5e6d3, #e0c8a8, #d0b090), radial-gradient(ellipse at 50% 30%, #fff8f0 0%, transparent 60%); }
.scn-stationer-search .bg-shop { position:absolute; inset:0; background: linear-gradient(90deg, #d0b090, #e0c8a8, #d0b090); }
.scn-stationer-search .shelves { position:absolute; top:10%; left:5%; width:90%; height:40%; background: repeating-linear-gradient(180deg, #8a6a50 0px, #8a6a50 4px, transparent 4px, transparent 20px); border-radius: 5px; box-shadow: inset 0 5px 15px rgba(0,0,0,0.2); animation: ss-shelves 30s linear infinite; }
.scn-stationer-search .counter { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #b09070, #a08060); border-radius: 10% 10% 5% 5%; box-shadow: 0 -5px 20px rgba(0,0,0,0.3); }
.scn-stationer-search .holmes { position:absolute; bottom:18%; left:35%; width:14px; height:35px; background: #2a2a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-holmes 8s ease-in-out infinite; }
.scn-stationer-search .pencil-chips { position:absolute; bottom:22%; left:40%; width:20%; height:4%; background: repeating-linear-gradient(90deg, #c08040 0px, #c08040 3px, transparent 3px, transparent 8px); border-radius: 2px; animation: ss-chips 4s ease-in-out infinite alternate; }
.scn-stationer-search .shopkeeper { position:absolute; bottom:18%; right:20%; width:14px; height:35px; background: #4a3a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-keeper 6s ease-in-out infinite; }
@keyframes ss-shelves { 0% { opacity:1; } 50% { opacity:0.9; } 100% { opacity:1; } }
@keyframes ss-holmes { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ss-chips { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }
@keyframes ss-keeper { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* ==================== l e s t r a d e - i d e n t i f i e s - v e n u c c i ==================== */
.scn-lestrade-identifies-venucci {
  background: 
    linear-gradient(180deg, rgba(245,235,210,0.6) 0%, rgba(210,190,160,0.4) 50%, rgba(170,150,120,0.3) 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,230,180,0.25) 0%, transparent 70%);
}
.scn-lestrade-identifies-venucci .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #e8ddd0 0%, #d0c0a8 100%);
  border-bottom:2px solid #8a7a6a;
  animation: lev-wall 20s ease-in-out infinite alternate;
}
.scn-lestrade-identifies-venucci .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6e5e4e 0%, #4a3a2a 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.5);
  animation: lev-floor 12s ease-in-out infinite alternate;
}
.scn-lestrade-identifies-venucci .body {
  position:absolute; bottom:18%; left:28%; width:40px; height:60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: lev-body 4s ease-in-out infinite alternate;
}
.scn-lestrade-identifies-venucci .inspector {
  position:absolute; bottom:20%; left:48%; width:30px; height:75px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: lev-inspector 3s ease-in-out infinite alternate;
}
.scn-lestrade-identifies-venucci .lamp {
  position:absolute; top:10%; right:25%; width:20px; height:30px;
  background: radial-gradient(circle at 50% 60%, #ffd080 0%, #b08040 60%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.6), 0 0 60px 20px rgba(255,208,128,0.3);
  animation: lev-lamp 1.2s ease-in-out infinite alternate;
}
.scn-lestrade-identifies-venucci .cross {
  position:absolute; bottom:18%; left:32%; width:12px; height:16px;
  background: radial-gradient(circle at 50% 50%, #b89868 0%, #7a5a2e 100%);
  border-radius: 10% 10% 10% 10% / 30% 30% 30% 30%;
  box-shadow: 0 0 6px 2px rgba(200,170,100,0.4);
  transform: rotate(5deg);
  animation: lev-cross 5s ease-in-out infinite alternate;
}
.scn-lestrade-identifies-venucci .dust-a,
.scn-lestrade-identifies-venucci .dust-b {
  position:absolute; width:4px; height:4px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-lestrade-identifies-venucci .dust-a {
  top:20%; left:15%;
  animation: lev-dust-a 8s linear infinite;
}
.scn-lestrade-identifies-venucci .dust-b {
  top:40%; right:20%;
  animation: lev-dust-b 11s linear infinite reverse;
}
@keyframes lev-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lev-floor { 0% { box-shadow: inset 0 10px 20px rgba(0,0,0,0.4) } 50% { box-shadow: inset 0 14px 26px rgba(0,0,0,0.6) } 100% { box-shadow: inset 0 8px 18px rgba(0,0,0,0.3) } }
@keyframes lev-body { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes lev-inspector { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 33% { transform: translateX(2px) translateY(-2px) rotate(1deg) } 66% { transform: translateX(-1px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes lev-lamp { 0% { box-shadow: 0 0 20px 8px rgba(255,208,128,0.5), 0 0 40px 15px rgba(255,208,128,0.2); opacity:0.9 } 50% { box-shadow: 0 0 40px 15px rgba(255,208,128,0.8), 0 0 80px 25px rgba(255,208,128,0.4); opacity:1 } 100% { box-shadow: 0 0 25px 10px rgba(255,208,128,0.6), 0 0 50px 18px rgba(255,208,128,0.3); opacity:0.85 } }
@keyframes lev-cross { 0% { transform: rotate(3deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.05) } 100% { transform: rotate(4deg) scale(0.98) } }
@keyframes lev-dust-a { 0% { transform: translate(0,0) scale(1); opacity:0.3 } 25% { transform: translate(20px,-10px) scale(1.2); opacity:0.5 } 50% { transform: translate(-10px,-20px) scale(0.8); opacity:0.2 } 75% { transform: translate(15px,-5px) scale(1.1); opacity:0.4 } 100% { transform: translate(0,0) scale(1); opacity:0.3 } }
@keyframes lev-dust-b { 0% { transform: translate(0,0) scale(1); opacity:0.2 } 33% { transform: translate(-15px,-8px) scale(0.9); opacity:0.4 } 66% { transform: translate(10px,-15px) scale(1.1); opacity:0.3 } 100% { transform: translate(0,0) scale(1); opacity:0.2 } }

/* ==================== h o l m e s - a r r a n g e s - n i g h t - e x p e d i t i o n ==================== */
.scn-holmes-arranges-night-expedition {
  background: 
    linear-gradient(180deg, rgba(240,225,200,0.5) 0%, rgba(220,200,170,0.3) 60%, rgba(200,180,150,0.2) 100%),
    radial-gradient(ellipse at 70% 50%, rgba(255,235,200,0.2) 0%, transparent 70%);
}
.scn-holmes-arranges-night-expedition .bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a088 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-holmes-arranges-night-expedition .desk {
  position:absolute; bottom:10%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a3420 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: hne-desk 10s ease-in-out infinite alternate;
}
.scn-holmes-arranges-night-expedition .holmes {
  position:absolute; bottom:25%; left:38%; width:32px; height:60px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: hne-holmes 8s ease-in-out infinite alternate;
}
.scn-holmes-arranges-night-expedition .watson {
  position:absolute; bottom:28%; left:58%; width:30px; height:55px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: hne-watson 10s ease-in-out infinite alternate;
}
.scn-holmes-arranges-night-expedition .lamp {
  position:absolute; top:15%; left:30%; width:18px; height:24px;
  background: radial-gradient(circle at 50% 70%, #ffd090 0%, #c08850 60%, transparent 80%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 25px 8px rgba(255,208,144,0.5), 0 0 50px 16px rgba(255,208,144,0.2);
  animation: hne-lamp 5s ease-in-out infinite alternate;
}
.scn-holmes-arranges-night-expedition .books {
  position:absolute; top:20%; right:15%; width:40px; height:50px;
  background: linear-gradient(90deg, #7a6048 0%, #a08060 50%, #7a6048 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2), inset 0 2px 4px rgba(255,255,255,0.1);
  animation: hne-books 15s ease-in-out infinite alternate;
}
.scn-holmes-arranges-night-expedition .curtain {
  position:absolute; top:0; left:0; width:20%; height:100%;
  background: linear-gradient(90deg, rgba(180,140,100,0.6) 0%, transparent 100%);
  border-radius: 0 30% 30% 0 / 0 20% 20% 0;
  filter: blur(4px);
  animation: hne-curtain 20s ease-in-out infinite alternate;
}
@keyframes hne-desk { 0% { box-shadow: 0 6px 12px rgba(0,0,0,0.3) } 50% { box-shadow: 0 10px 20px rgba(0,0,0,0.4) } 100% { box-shadow: 0 6px 12px rgba(0,0,0,0.3) } }
@keyframes hne-holmes { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes hne-watson { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(1px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes hne-lamp { 0% { opacity:0.9; box-shadow: 0 0 20px 6px rgba(255,208,144,0.4), 0 0 40px 12px rgba(255,208,144,0.2) } 50% { opacity:1; box-shadow: 0 0 30px 10px rgba(255,208,144,0.6), 0 0 60px 18px rgba(255,208,144,0.3) } 100% { opacity:0.95; box-shadow: 0 0 22px 8px rgba(255,208,144,0.5), 0 0 44px 14px rgba(255,208,144,0.25) } }
@keyframes hne-books { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes hne-curtain { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* ==================== h o l m e s - r e s e a r c h e s - f i l e s ==================== */
.scn-holmes-researches-files {
  background: 
    linear-gradient(180deg, rgba(80,70,50,0.7) 0%, rgba(40,35,25,0.5) 60%, rgba(20,18,12,0.4) 100%),
    radial-gradient(ellipse at 60% 30%, rgba(160,130,80,0.15) 0%, transparent 70%);
}
.scn-holmes-researches-files .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.4);
  animation: hrf-wall 15s ease-in-out infinite alternate;
}
.scn-holmes-researches-files .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: hrf-floor 18s ease-in-out infinite alternate;
}
.scn-holmes-researches-files .shelves {
  position:absolute; top:10%; left:15%; right:15%; height:50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-holmes-researches-files .holmes {
  position:absolute; bottom:20%; left:40%; width:28px; height:50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: hrf-holmes 12s ease-in-out infinite alternate;
}
.scn-holmes-researches-files .files {
  position:absolute; bottom:30%; left:50%; width:30px; height:40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-10deg);
  animation: hrf-files 8s ease-in-out infinite alternate;
}
.scn-holmes-researches-files .lantern {
  position:absolute; top:12%; left:20%; width:16px; height:22px;
  background: radial-gradient(circle at 50% 60%, #d0a060 0%, #906030 60%, transparent 80%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(200,150,80,0.4), 0 0 40px 12px rgba(200,150,80,0.15);
  animation: hrf-lantern 6s ease-in-out infinite alternate;
}
.scn-holmes-researches-files .dust {
  position:absolute; width:100%; height:100%;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,255,0.08) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(255,255,255,0.06) 0%, transparent 50%);
  filter: blur(6px);
  animation: hrf-dust 25s linear infinite;
}
@keyframes hrf-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hrf-floor { 0% { box-shadow: inset 0 8px 16px rgba(0,0,0,0.5) } 50% { box-shadow: inset 0 12px 24px rgba(0,0,0,0.7) } 100% { box-shadow: inset 0 8px 16px rgba(0,0,0,0.5) } }
@keyframes hrf-holmes { 0% { transform: translateX(0) rotate(-1deg) } 33% { transform: translateX(2px) rotate(0deg) } 66% { transform: translateX(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes hrf-files { 0% { transform: rotate(-8deg) scale(1) } 50% { transform: rotate(-12deg) scale(1.02) } 100% { transform: rotate(-8deg) scale(1) } }
@keyframes hrf-lantern { 0% { opacity:0.9; box-shadow: 0 0 16px 4px rgba(200,150,80,0.3), 0 0 32px 8px rgba(200,150,80,0.1) } 50% { opacity:1; box-shadow: 0 0 24px 8px rgba(200,150,80,0.5), 0 0 48px 16px rgba(200,150,80,0.2) } 100% { opacity:0.95; box-shadow: 0 0 18px 5px rgba(200,150,80,0.35), 0 0 36px 10px rgba(200,150,80,0.15) } }
@keyframes hrf-dust { 0% { background-position: 0% 0%, 0% 0%; opacity:0.3 } 25% { background-position: 20% 10%, -10% -5%; opacity:0.5 } 50% { background-position: -15% 20%, 10% 10%; opacity:0.2 } 75% { background-position: 10% -5%, -5% 15%; opacity:0.4 } 100% { background-position: 0% 0%, 0% 0%; opacity:0.3 } }

/* ==================== c h i s w i c k - a m b u s h ==================== */
.scn-chiswick-ambush {
  background: 
    linear-gradient(180deg, #0e1620 0%, #1a2230 40%, #2a3a4a 70%, #3a4a5a 100%),
    radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 60%);
}
.scn-chiswick-ambush .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #0c1420 0%, #202a38 60%, #303a48 100%);
  animation: ca-sky 20s ease-in-out infinite alternate;
}
.scn-chiswick-ambush .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.6);
  animation: ca-ground 10s ease-in-out infinite alternate;
}
.scn-chiswick-ambush .cab {
  position:absolute; bottom:22%; left:30%; width:70px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 15% 15% 8% 8% / 40% 40% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  transform-origin: bottom center;
  animation: ca-cab 3s ease-in-out infinite alternate;
}
.scn-chiswick-ambush .tree-l,
.scn-chiswick-ambush .tree-r {
  position:absolute; bottom:25%; width:30px; height:60px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform-origin: bottom center;
}
.scn-chiswick-ambush .tree-l {
  left:10%;
  animation: ca-tree-l 6s ease-in-out infinite alternate;
}
.scn-chiswick-ambush .tree-r {
  right:10%;
  animation: ca-tree-r 7s ease-in-out infinite alternate;
}
.scn-chiswick-ambush .figures {
  position:absolute; bottom:26%; left:55%; width:20px; height:45px;
  background: linear-gradient(180deg, #1a1a1a 0%, #080808 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
  transform-origin: bottom center;
  animation: ca-figures 2s ease-in-out infinite alternate;
}
.scn-chiswick-ambush .lamp-post {
  position:absolute; bottom:30%; left:50%; width:6px; height:50px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.3);
  animation: ca-lamp 4s ease-in-out infinite alternate;
}
@keyframes ca-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes ca-ground { 0% { box-shadow: inset 0 10px 20px rgba(0,0,0,0.5) } 50% { box-shadow: inset 0 14px 28px rgba(0,0,0,0.7) } 100% { box-shadow: inset 0 10px 20px rgba(0,0,0,0.5) } }
@keyframes ca-cab { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(0.5deg) } 50% { transform: translateY(1px) rotate(-0.5deg) } 75% { transform: translateY(-1px) rotate(0.3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ca-tree-l { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes ca-tree-r { 0% { transform: rotate(2deg) scaleY(1) } 50% { transform: rotate(-2deg) scaleY(1.02) } 100% { transform: rotate(1deg) scaleY(1) } }
@keyframes ca-figures { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 60% { transform: translateX(-2px) translateY(1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes ca-lamp { 0% { opacity:0.8; box-shadow: 0 0 15px 6px rgba(255,200,100,0.2) } 50% { opacity:1; box-shadow: 0 0 25px 10px rgba(255,200,100,0.4) } 100% { opacity:0.9; box-shadow: 0 0 18px 8px rgba(255,200,100,0.3) } }

/* passenger-list */
.scn-passenger-list {
  background: linear-gradient(135deg, #f0e0c8 0%, #d0a870 100%), radial-gradient(circle at 70% 30%, #ffe0b0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-passenger-list .cabin-wall { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #e8d4b8 0%, #b89878 100%); clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); animation: pl-wall 20s ease-in-out infinite; }
.scn-passenger-list .porthole { position:absolute; top:10%; left:70%; width:80px; height:80px; border-radius:50%; border:8px solid #6a4a2a; background: linear-gradient(180deg, #87ceeb 0%, #4682b4 40%, #2a5a7a 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.4); animation: pl-porthole 12s ease-in-out infinite; }
.scn-passenger-list .desk { position:absolute; bottom:20%; left:20%; width:55%; height:18%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); transform: perspective(400px) rotateX(8deg); animation: pl-desk 8s ease-in-out infinite; }
.scn-passenger-list .lamp { position:absolute; bottom:38%; left:45%; width:14px; height:24px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #b07030 70%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.3); transform-origin: bottom center; animation: pl-lamp 4s ease-in-out infinite alternate; }
.scn-passenger-list .document { position:absolute; bottom:28%; left:30%; width:18%; height:8%; background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b0 100%); border-radius:4%; box-shadow: 0 2px 8px rgba(0,0,0,0.3), inset 0 0 0 2px #c0a080; animation: pl-document 6s ease-in-out infinite; }
.scn-passenger-list .chair { position:absolute; bottom:18%; right:15%; width:22%; height:25%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 6px 10px rgba(0,0,0,0.4); transform: perspective(200px) rotateX(-5deg); animation: pl-chair 10s ease-in-out infinite; }
.scn-passenger-list .inkwell { position:absolute; bottom:28%; left:25%; width:8px; height:10px; background: radial-gradient(circle, #3a2a1a 0%, #1a0a00 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: pl-inkwell 5s ease-in-out infinite; }
@keyframes pl-wall { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes pl-porthole { 0% { background-position: 0% 0%; } 50% { background-position: 10% 20%; } 100% { background-position: 0% 0%; } }
@keyframes pl-desk { 0%,100% { transform: perspective(400px) rotateX(8deg) translateY(0); } 50% { transform: perspective(400px) rotateX(8deg) translateY(-2px); } }
@keyframes pl-lamp { 0% { transform: rotate(-3deg); box-shadow: 0 0 24px 6px #ffd080, 0 0 50px 15px rgba(255,208,128,0.3); } 50% { transform: rotate(3deg); box-shadow: 0 0 36px 12px #ffe0a0, 0 0 60px 20px rgba(255,208,128,0.5); } 100% { transform: rotate(-3deg); box-shadow: 0 0 28px 8px #ffd080, 0 0 55px 18px rgba(255,208,128,0.35); } }
@keyframes pl-document { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes pl-chair { 0%,100% { transform: perspective(200px) rotateX(-5deg) translateY(0); } 50% { transform: perspective(200px) rotateX(-5deg) translateY(-3px); } }
@keyframes pl-inkwell { 0%,100% { transform: translateX(0); } 50% { transform: translateX(1px); } }

/* captain-crocker-character */
.scn-captain-crocker-character {
  background: linear-gradient(180deg, #ead8c0 0%, #c8a87b 100%), radial-gradient(ellipse at 50% 80%, #b08d6a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-captain-crocker-character .office-wall { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #d8c4a8 0%, #b89878 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: cc-wall 18s ease-in-out infinite; }
.scn-captain-crocker-character .window { position:absolute; top:10%; left:65%; width:25%; height:40%; border:6px solid #6a4a2a; border-radius:4%; background: linear-gradient(180deg, #b0d8e8 0%, #7ab0c8 40%, #3a6a8a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.3); animation: cc-window 14s ease-in-out infinite; }
.scn-captain-crocker-character .desk { position:absolute; bottom:20%; left:15%; width:50%; height:15%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); transform: perspective(400px) rotateX(6deg); animation: cc-desk 9s ease-in-out infinite; }
.scn-captain-crocker-character .chair { position:absolute; bottom:15%; right:10%; width:20%; height:28%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); transform: perspective(200px) rotateX(-4deg); animation: cc-chair 11s ease-in-out infinite; }
.scn-captain-crocker-character .captain-figure { position:absolute; bottom:18%; left:30%; width:14%; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: cc-figure 5s ease-in-out infinite alternate; }
.scn-captain-crocker-character .hat { position:absolute; bottom:60%; left:28%; width:16%; height:8%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 0 0; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: cc-hat 7s ease-in-out infinite; }
.scn-captain-crocker-character .map { position:absolute; bottom:25%; left:20%; width:22%; height:10%; background: linear-gradient(135deg, #f0e8d0 0%, #d0c8a0 100%); border-radius:4%; box-shadow: 0 2px 6px rgba(0,0,0,0.3), inset 0 0 0 2px #c0a880; transform: rotate(-2deg); animation: cc-map 12s ease-in-out infinite; }
.scn-captain-crocker-character .papers { position:absolute; bottom:25%; left:28%; width:15%; height:8%; background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b0 100%); border-radius:4%; box-shadow: 0 2px 4px rgba(0,0,0,0.2), inset 0 0 0 1px #c0a080; transform: rotate(3deg); animation: cc-papers 8s ease-in-out infinite; }
@keyframes cc-wall { 0%,100% { opacity:0.95; } 50% { opacity:1; } }
@keyframes cc-window { 0% { background-position: 0% 0%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); } 50% { background-position: 10% 15%; box-shadow: inset 0 0 40px rgba(0,0,0,0.4); } 100% { background-position: 0% 0%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); } }
@keyframes cc-desk { 0%,100% { transform: perspective(400px) rotateX(6deg) translateY(0); } 50% { transform: perspective(400px) rotateX(6deg) translateY(-2px); } }
@keyframes cc-chair { 0%,100% { transform: perspective(200px) rotateX(-4deg) translateY(0); } 50% { transform: perspective(200px) rotateX(-4deg) translateY(-2px); } }
@keyframes cc-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(0.5deg) scaleY(0.98); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-0.5deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cc-hat { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(2px); } }
@keyframes cc-map { 0%,100% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } }
@keyframes cc-papers { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } }

/* holmes-reluctant */
.scn-holmes-reluctant {
  background: linear-gradient(90deg, #f0e6d6 0%, #d6c4b0 100%), radial-gradient(circle at 30% 50%, #ffe0b2 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-holmes-reluctant .room-wall { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #e8d8c8 0%, #c8b8a0 100%); clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); animation: hr-wall 22s ease-in-out infinite; }
.scn-holmes-reluctant .window { position:absolute; top:8%; left:72%; width:20%; height:35%; border:5px solid #6a4a2a; border-radius:4%; background: linear-gradient(180deg, #c8d8e8 0%, #8ab0c8 40%, #4a7a9a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.3); animation: hr-window 16s ease-in-out infinite; }
.scn-holmes-reluctant .bookshelf { position:absolute; top:12%; left:10%; width:18%; height:70%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:6%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: hr-bookshelf 20s ease-in-out infinite; }
.scn-holmes-reluctant .armchair { position:absolute; bottom:15%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); transform-origin: bottom center; animation: hr-armchair 10s ease-in-out infinite; }
.scn-holmes-reluctant .holmes-figure { position:absolute; bottom:22%; left:42%; width:16%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: hr-figure 5s ease-in-out infinite alternate; }
.scn-holmes-reluctant .table { position:absolute; bottom:12%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); transform: perspective(400px) rotateX(5deg); animation: hr-table 9s ease-in-out infinite; }
.scn-holmes-reluctant .lamp { position:absolute; bottom:28%; left:60%; width:12px; height:20px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #b07030 70%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.3); transform-origin: bottom center; animation: hr-lamp 4s ease-in-out infinite alternate; }
@keyframes hr-wall { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes hr-window { 0% { background-position: 0% 0%; } 50% { background-position: 10% 20%; } 100% { background-position: 0% 0%; } }
@keyframes hr-bookshelf { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes hr-armchair { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(0.98); } }
@keyframes hr-figure { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(3px) rotate(1deg) scaleY(0.97); } 50% { transform: translateX(0) rotate(0deg) scaleY(1); } 75% { transform: translateX(-3px) rotate(-1deg) scaleY(1.03); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes hr-table { 0%,100% { transform: perspective(400px) rotateX(5deg) translateY(0); } 50% { transform: perspective(400px) rotateX(5deg) translateY(-2px); } }
@keyframes hr-lamp { 0% { transform: rotate(-4deg); box-shadow: 0 0 24px 6px #ffd080, 0 0 50px 15px rgba(255,208,128,0.3); } 50% { transform: rotate(4deg); box-shadow: 0 0 36px 12px #ffe0a0, 0 0 60px 20px rgba(255,208,128,0.5); } 100% { transform: rotate(-4deg); box-shadow: 0 0 28px 8px #ffd080, 0 0 55px 18px rgba(255,208,128,0.35); } }

/* pond-discovery */
.scn-pond-discovery {
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a38a 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-pond-discovery .room-wall { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #c8b8a0 0%, #a88a70 100%); clip-path: polygon(0 0, 100% 0, 88% 100%, 12% 100%); animation: pd-wall 24s ease-in-out infinite; }
.scn-pond-discovery .window-frame { position:absolute; top:5%; left:60%; width:35%; height:50%; border:8px solid #5a3a2a; border-radius:6%; background: transparent; box-shadow: 0 8px 20px rgba(0,0,0,0.4); animation: pd-frame 15s ease-in-out infinite; }
.scn-pond-discovery .sky-window { position:absolute; top:5%; left:60%; width:35%; height:30%; background: linear-gradient(180deg, #a0c8e8 0%, #6a9ab8 100%); clip-path: inset(0 0 0 0); transform-origin: top; animation: pd-sky 18s ease-in-out infinite; }
.scn-pond-discovery .water-window { position:absolute; top:35%; left:60%; width:35%; height:20%; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%); clip-path: inset(0 0 0 0); transform-origin: top; animation: pd-water 12s ease-in-out infinite alternate; }
.scn-pond-discovery .desk { position:absolute; bottom:18%; left:15%; width:45%; height:15%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); transform: perspective(400px) rotateX(7deg); animation: pd-desk 9s ease-in-out infinite; }
.scn-pond-discovery .chair { position:absolute; bottom:12%; right:12%; width:18%; height:25%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); transform: perspective(200px) rotateX(-5deg); animation: pd-chair 11s ease-in-out infinite; }
.scn-pond-discovery .silver-cup { position:absolute; bottom:26%; left:25%; width:8%; height:10%; background: linear-gradient(180deg, #e0d8d0 0%, #b0a8a0 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.3), inset 0 0 0 2px #c0b8b0; animation: pd-cup 4s ease-in-out infinite alternate; }
.scn-pond-discovery .inspector-figure { position:absolute; bottom:18%; left:35%; width:12%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: pd-figure 6s ease-in-out infinite alternate; }
@keyframes pd-wall { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes pd-frame { 0%,100% { box-shadow: 0 8px 20px rgba(0,0,0,0.4); } 50% { box-shadow: 0 12px 30px rgba(0,0,0,0.5); } }
@keyframes pd-sky { 0% { background-position: 0% 0%; } 50% { background-position: 10% 20%; } 100% { background-position: 0% 0%; } }
@keyframes pd-water { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pd-desk { 0%,100% { transform: perspective(400px) rotateX(7deg) translateY(0); } 50% { transform: perspective(400px) rotateX(7deg) translateY(-2px); } }
@keyframes pd-chair { 0%,100% { transform: perspective(200px) rotateX(-5deg) translateY(0); } 50% { transform: perspective(200px) rotateX(-5deg) translateY(-3px); } }
@keyframes pd-cup { 0% { transform: rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.3), inset 0 0 0 2px #c0b8b0; } 50% { transform: rotate(3deg); box-shadow: 0 6px 12px rgba(0,0,0,0.4), inset 0 0 0 3px #d0c8c0; } 100% { transform: rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.3), inset 0 0 0 2px #c0b8b0; } }
@keyframes pd-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(0.5deg) scaleY(0.98); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-0.5deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg); } }

/* holmes-advises */
.scn-holmes-advises {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #a08060 100%), radial-gradient(ellipse at 30% 70%, #c8a880 0%, transparent 70%);
}
.scn-holmes-advises .backwall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #c8b090 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: ha-backwall 20s ease-in-out infinite alternate;
}
.scn-holmes-advises .window {
  position: absolute; top: 12%; left: 55%; width: 28%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #e0c8a0 60%, transparent 100%);
  border: 6px solid #8b6f4c;
  border-radius: 12px 12px 4px 4px;
  box-shadow: inset 0 0 40px #fff8d0, 0 0 30px rgba(255,248,200,0.5);
  animation: ha-window-glow 8s ease-in-out infinite alternate;
}
.scn-holmes-advises .desk {
  position: absolute; bottom: 20%; left: 20%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3220 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ha-desk 15s ease-in-out infinite;
}
.scn-holmes-advises .holmes-silhouette {
  position: absolute; bottom: 30%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ha-holmes-bow 6s ease-in-out infinite;
}
.scn-holmes-advises .client-silhouette {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: ha-client-nod 7s ease-in-out infinite;
}
.scn-holmes-advises .lamp {
  position: absolute; bottom: 38%; left: 28%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #c89040 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.4);
  animation: ha-lamp-pulse 3s ease-in-out infinite alternate;
}
.scn-holmes-advises .rug {
  position: absolute; bottom: 10%; left: 15%; width: 60%; height: 10%;
  background: linear-gradient(90deg, #a08060 0%, #c0a080 30%, #d0b090 50%, #c0a080 70%, #a08060 100%);
  border-radius: 50% / 100% 100% 0 0;
  opacity: 0.8;
}
.scn-holmes-advises .curtain {
  position: absolute; top: 8%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #a07050 0%, #704830 100%);
  border-radius: 0 20px 20px 0;
}
.scn-holmes-advises .curtain.left { left: 5%; transform-origin: left; animation: ha-curtain-sway 12s ease-in-out infinite; }
.scn-holmes-advises .curtain.right { right: 5%; transform-origin: right; animation: ha-curtain-sway 12s ease-in-out infinite reverse; }
@keyframes ha-backwall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ha-window-glow { 0% { box-shadow: inset 0 0 30px #fff8d0, 0 0 20px rgba(255,248,200,0.3); } 50% { box-shadow: inset 0 0 60px #fff8e0, 0 0 40px rgba(255,248,200,0.6); } 100% { box-shadow: inset 0 0 35px #fff8d0, 0 0 25px rgba(255,248,200,0.4); } }
@keyframes ha-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ha-holmes-bow { 0% { transform: rotate(0deg) translateX(0); } 20% { transform: rotate(-3deg) translateX(2px); } 80% { transform: rotate(2deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes ha-client-nod { 0% { transform: rotate(0deg); } 15% { transform: rotate(2deg); } 85% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes ha-lamp-pulse { 0% { box-shadow: 0 0 15px 4px #ffd080, 0 0 30px 8px rgba(255,208,128,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 25px 8px #ffd080, 0 0 50px 16px rgba(255,208,128,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #ffd080, 0 0 35px 10px rgba(255,208,128,0.35); opacity: 0.9; } }
@keyframes ha-curtain-sway { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

/* duke-accepts */
.scn-duke-accepts {
  background: linear-gradient(180deg, #f0dcc0 0%, #d4b896 35%, #b09070 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-duke-accepts .hall-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #c8b090 100%);
  border-radius: 0 0 20% 20% / 0 0 15% 15%;
}
.scn-duke-accepts .arched-window {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #e8d5b0 70%, transparent 100%);
  border: 6px solid #8b6f4c;
  border-radius: 50% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 60px #fff8d0, 0 0 30px rgba(255,248,200,0.4);
  animation: da-window-glow 10s ease-in-out infinite alternate;
}
.scn-duke-accepts .duke-silhouette {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 25% 25% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: da-duke-slight-turn 8s ease-in-out infinite;
}
.scn-duke-accepts .letter {
  position: absolute; bottom: 35%; left: 48%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #f5e6c8 0%, #e0c8a0 100%);
  border: 1px solid #b09070;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: da-letter-float 6s ease-in-out infinite;
}
.scn-duke-accepts .carpet {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(90deg, #9b8060 0%, #b09070 20%, #c0a080 50%, #b09070 80%, #9b8060 100%);
  border-radius: 10px;
  opacity: 0.8;
}
.scn-duke-accepts .column-left,
.scn-duke-accepts .column-right {
  position: absolute; bottom: 20%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 6px;
}
.scn-duke-accepts .column-left { left: 10%; }
.scn-duke-accepts .column-right { right: 10%; }
.scn-duke-accepts .chandelier {
  position: absolute; top: 6%; left: 50%; transform: translateX(-50%); width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #d0b090 0%, #b09070 50%, transparent 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 4px #d0b090, 0 0 40px 10px rgba(208,176,144,0.4);
  animation: da-chandelier-glow 5s ease-in-out infinite alternate;
}
.scn-duke-accepts .sunbeam {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,248,200,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: da-sunbeam 20s linear infinite;
}
@keyframes da-window-glow { 0% { box-shadow: inset 0 0 40px #fff8d0, 0 0 20px rgba(255,248,200,0.3); } 50% { box-shadow: inset 0 0 80px #fff8e0, 0 0 50px rgba(255,248,200,0.6); } 100% { box-shadow: inset 0 0 45px #fff8d0, 0 0 25px rgba(255,248,200,0.35); } }
@keyframes da-duke-slight-turn { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(1deg) translateX(2px); } 75% { transform: rotate(-1deg) translateX(-2px); } }
@keyframes da-letter-float { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(1deg); } 70% { transform: translateY(2px) rotate(-1deg); } }
@keyframes da-chandelier-glow { 0% { box-shadow: 0 0 15px 2px #d0b090, 0 0 30px 6px rgba(208,176,144,0.3); } 50% { box-shadow: 0 0 25px 6px #d0b090, 0 0 50px 12px rgba(208,176,144,0.5); } 100% { box-shadow: 0 0 18px 3px #d0b090, 0 0 35px 8px rgba(208,176,144,0.35); } }
@keyframes da-sunbeam { 0% { transform: translateX(-20px); } 100% { transform: translateX(20px); } }

/* holmes-departs */
.scn-holmes-departs {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #b09070 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-holmes-departs .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #d4b896 100%);
  animation: hd-sky 20s ease-in-out infinite alternate;
}
.scn-holmes-departs .doorway {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 20%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #fff8d0 0%, #b09070 100%);
  border: 8px solid #6b4a2e;
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 30px #fff8d0, 0 0 20px rgba(255,248,200,0.5);
  animation: hd-doorway-glow 12s ease-in-out infinite alternate;
}
.scn-holmes-departs .holmes-back {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%); width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0800 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  animation: hd-walk 8s linear infinite;
}
.scn-holmes-departs .hat {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%); width: 24px; height: 10px;
  background: #1a1008;
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  animation: hd-walk 8s linear infinite;
}
.scn-holmes-departs .path {
  position: absolute; bottom: 5%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 50% / 100% 100% 0 0;
}
.scn-holmes-departs .tree {
  position: absolute; bottom: 8%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: hd-tree-sway 15s ease-in-out infinite;
}
.scn-holmes-departs .tree.left { left: 5%; transform-origin: bottom; }
.scn-holmes-departs .tree.right { right: 5%; transform-origin: bottom; animation-delay: -7s; }
.scn-holmes-departs .sun {
  position: absolute; top: 8%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8d0 0%, #e8d5b0 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #fff8d0, 0 0 80px 20px rgba(255,248,200,0.4);
  animation: hd-sun-pulse 6s ease-in-out infinite alternate;
}
@keyframes hd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hd-doorway-glow { 0% { box-shadow: inset 0 0 20px #fff8d0, 0 0 15px rgba(255,248,200,0.3); } 50% { box-shadow: inset 0 0 50px #fff8e0, 0 0 40px rgba(255,248,200,0.6); } 100% { box-shadow: inset 0 0 25px #fff8d0, 0 0 20px rgba(255,248,200,0.35); } }
@keyframes hd-walk { 0% { transform: translate(-50%, 0) scaleX(1); } 25% { transform: translate(-50%, -4px) scaleX(0.98); } 50% { transform: translate(-50%, 0) scaleX(1); } 75% { transform: translate(-50%, -2px) scaleX(1.02); } 100% { transform: translate(-50%, 0) scaleX(1); } }
@keyframes hd-tree-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes hd-sun-pulse { 0% { box-shadow: 0 0 30px 8px #fff8d0, 0 0 60px 16px rgba(255,248,200,0.3); } 50% { box-shadow: 0 0 50px 14px #fff8d0, 0 0 100px 24px rgba(255,248,200,0.5); } 100% { box-shadow: 0 0 35px 10px #fff8d0, 0 0 70px 18px rgba(255,248,200,0.35); } }

/* item-cow-shoes */
.scn-item-cow-shoes {
  background: linear-gradient(180deg, #e8d5b0 0%, #c8b090 40%, #a08060 100%), radial-gradient(ellipse at 50% 30%, #ffd080 0%, transparent 70%);
}
.scn-item-cow-shoes .tabletop {
  position: absolute; bottom: 10%; left: 5%; width: 90%; height: 60%;
  background: linear-gradient(180deg, #8b6f4c 0%, #6b4a2e 100%);
  border-radius: 12px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: cs-table-shimmer 25s ease-in-out infinite alternate;
}
.scn-item-cow-shoes .shoe-body {
  position: absolute; bottom: 35%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a3220 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,255,200,0.2);
  animation: cs-shoe-rock 10s ease-in-out infinite;
}
.scn-item-cow-shoes .shoe-hole {
  position: absolute; bottom: 40%; left: 44%; width: 20px; height: 16px;
  background: #6b4a2e; /* table color, creates hole */
  border-radius: 50% / 60% 60% 40% 40%;
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.3);
}
.scn-item-cow-shoes .mud {
  position: absolute; border-radius: 50%; filter: blur(3px);
  background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%);
}
.scn-item-cow-shoes .mud.sm { bottom: 36%; left: 42%; width: 12px; height: 8px; animation: cs-mud-drip 8s ease-in-out infinite; }
.scn-item-cow-shoes .mud.md { bottom: 30%; left: 46%; width: 18px; height: 12px; animation: cs-mud-drip 10s ease-in-out infinite reverse; }
.scn-item-cow-shoes .magnifier-circle {
  position: absolute; bottom: 50%; left: 55%; width: 40px; height: 40px;
  border: 4px solid #8b6f4c;
  border-radius: 50%;
  background: rgba(255,255,255,0.1);
  box-shadow: 0 0 10px rgba(255,248,200,0.3), inset 0 0 10px rgba(255,248,200,0.1);
  animation: cs-magnifier-glide 15s ease-in-out infinite;
}
.scn-item-cow-shoes .magnifier-handle {
  position: absolute; bottom: 50%; left: 68%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #704830 100%);
  border-radius: 2px;
  transform-origin: bottom;
  animation: cs-handle-sway 15s ease-in-out infinite;
}
.scn-item-cow-shoes .sunbeam {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(255,208,128,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: cs-sunbeam 30s linear infinite;
}
@keyframes cs-table-shimmer { 0% { background-position: 0 0; } 50% { background-position: 10px 10px; } 100% { background-position: 0 0; } }
@keyframes cs-shoe-rock { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-2deg) translateX(-2px); } 75% { transform: rotate(2deg) translateX(2px); } }
@keyframes cs-mud-drip { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(3px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes cs-magnifier-glide { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(4px, -2px) rotate(5deg); } 75% { transform: translate(-4px, 2px) rotate(-5deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes cs-handle-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes cs-sunbeam { 0% { transform: translateX(-30px); } 100% { transform: translateX(30px); } }

.scn-holmes-leaves-abruptly { background: linear-gradient(180deg, #f5e6c8 0%, #e8d1a8 100%), radial-gradient(circle at 50% 100%, #f5e6c8 0%, #d4b883 80%); }
.scn-holmes-leaves-abruptly .bg-wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #8c7a63 0%, #6a5a4a 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-holmes-leaves-abruptly .window-frame { position: absolute; top: 8%; left: 20%; width: 60%; height: 50%; background: #5a4a3a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 0 6px #4a3a2a; }
.scn-holmes-leaves-abruptly .window-scene { position: absolute; top: 10%; left: 22%; width: 56%; height: 46%; background: linear-gradient(180deg, #a0c8e0 0%, #80b898 100%); border-radius: 2% 2% 0 0; animation: hl-scene 12s ease-in-out infinite alternate; }
.scn-holmes-leaves-abruptly .curtain-curtain-l { position: absolute; top: 8%; left: 20%; width: 15%; height: 50%; background: linear-gradient(90deg, #c8a46b 0%, #8c6a3a 100%); border-radius: 0 20% 40% 0; transform-origin: left center; animation: hl-curtain 8s ease-in-out infinite alternate; }
.scn-holmes-leaves-abruptly .curtain-curtain-r { position: absolute; top: 8%; right: 20%; width: 15%; height: 50%; background: linear-gradient(90deg, #8c6a3a 0%, #c8a46b 100%); border-radius: 20% 0 0 40%; transform-origin: right center; animation: hl-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-holmes-leaves-abruptly .figure-standing { position: absolute; bottom: 22%; left: 35%; width: 8%; height: 40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hl-figure 4s ease-in-out infinite; }
.scn-holmes-leaves-abruptly .figure-sitting { position: absolute; bottom: 22%; right: 30%; width: 12%; height: 30%; background: linear-gradient(180deg, #2a2a2a 0%, #3a3a3a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hl-figure 4s ease-in-out infinite 0.5s; }
.scn-holmes-leaves-abruptly .lamp-glow { position: absolute; bottom: 35%; left: 48%; width: 4%; height: 6%; background: radial-gradient(circle, #f5d080 0%, #e8b84b 70%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(232,184,75,.5), 0 0 60px 30px rgba(232,184,75,.2); animation: hl-lamp 3s ease-in-out infinite alternate; }
.scn-holmes-leaves-abruptly .table { position: absolute; bottom: 20%; left: 40%; width: 20%; height: 5%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
@keyframes hl-scene { 0% { filter: brightness(0.8); } 50% { filter: brightness(1.2); } 100% { filter: brightness(0.9); } }
@keyframes hl-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes hl-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hl-lamp { 0% { box-shadow: 0 0 20px 5px #e8b84b; opacity: .8; } 50% { box-shadow: 0 0 40px 15px #f5d080; opacity: 1; } 100% { box-shadow: 0 0 25px 8px #e8b84b; opacity: .9; } }

.scn-holmes-sudden-impulse { background: linear-gradient(180deg, #c8d8e8 0%, #a8bccf 100%), radial-gradient(ellipse at 80% 20%, #ffffff 0%, #a8bccf 80%); }
.scn-holmes-sudden-impulse .station-roof { position: absolute; top: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-holmes-sudden-impulse .glass-panes { position: absolute; top: 5%; left: 10%; right: 10%; height: 20%; background: linear-gradient(90deg, rgba(255,255,255,.4) 0%, rgba(200,220,240,.2) 50%, rgba(255,255,255,.4) 100%); border-radius: 10%; filter: blur(2px); animation: si-glass 12s ease-in-out infinite alternate; }
.scn-holmes-sudden-impulse .platform { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #b4a48a 0%, #8c7a63 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-holmes-sudden-impulse .train-receding { position: absolute; bottom: 15%; left: 10%; width: 40%; height: 50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: -10px 0 20px rgba(0,0,0,.5); transform: skewX(-10deg); animation: si-train 8s linear infinite; }
.scn-holmes-sudden-impulse .figure-holmes { position: absolute; bottom: 20%; left: 55%; width: 8%; height: 45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-lunge 2s ease-in-out infinite; }
.scn-holmes-sudden-impulse .figure-watson { position: absolute; bottom: 20%; left: 65%; width: 10%; height: 40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: si-step 2.5s ease-in-out infinite; }
.scn-holmes-sudden-impulse .lamp-post { position: absolute; bottom: 20%; right: 15%; width: 3%; height: 50%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 10px 2px rgba(0,0,0,.5); }
.scn-holmes-sudden-impulse .lamp-light { position: absolute; bottom: 45%; right: 13%; width: 7%; height: 7%; background: radial-gradient(circle, #e0c8a0 0%, #c8a060 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,160,96,.6); animation: si-flicker 0.5s ease-in-out infinite alternate; }
@keyframes si-glass { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes si-train { 0% { transform: translateX(0) skewX(-10deg) scale(1); opacity: 1; } 50% { transform: translateX(-20%) skewX(-15deg) scale(0.8); opacity: .8; } 100% { transform: translateX(-50%) skewX(-20deg) scale(0.4); opacity: 0; } }
@keyframes si-lunge { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(5%) translateY(-5%) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes si-step { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes si-flicker { 0% { opacity: .7; box-shadow: 0 0 30px 10px rgba(200,160,96,.4); } 100% { opacity: 1; box-shadow: 0 0 50px 20px rgba(200,160,96,.8); } }

.scn-self-criticism { background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #0a0a0a 80%); }
.scn-self-criticism .bg-shadow { position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a1a 0%, transparent 50%, #0a0a0a 100%); }
.scn-self-criticism .spotlight { position: absolute; top: 0; left: 25%; width: 50%; height: 60%; background: radial-gradient(ellipse at 50% 0%, #e8c88a 0%, #c87a3a 50%, transparent 100%); clip-path: polygon(15% 0%, 85% 0%, 100% 100%, 0% 100%); animation: sc-spot 8s ease-in-out infinite alternate; }
.scn-self-criticism .figure-holmes { position: absolute; bottom: 15%; left: 40%; width: 20%; height: 50%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom center; animation: sc-hunch 4s ease-in-out infinite; box-shadow: 0 0 30px 10px rgba(0,0,0,.8); }
.scn-self-criticism .armchair { position: absolute; bottom: 10%; left: 35%; width: 30%; height: 30%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-self-criticism .table { position: absolute; bottom: 8%; left: 45%; width: 10%; height: 8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 2% 2%; box-shadow: 0 -4px 10px rgba(0,0,0,.5); }
.scn-self-criticism .candle { position: absolute; bottom: 16%; left: 49%; width: 2%; height: 6%; background: linear-gradient(180deg, #e8d8b0 0%, #c8a86a 100%); border-radius: 20% 20% 0 0; }
.scn-self-criticism .candle-glow { position: absolute; bottom: 20%; left: 48%; width: 4%; height: 4%; background: radial-gradient(circle, #f5e0a0 0%, #e8a040 60%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(232,160,64,.6), 0 0 60px 30px rgba(232,160,64,.3); animation: sc-candle 1.5s ease-in-out infinite alternate; }
@keyframes sc-spot { 0% { opacity: .7; transform: scaleY(0.9); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: .8; transform: scaleY(1); } }
@keyframes sc-hunch { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 50% { transform: translateY(5%) rotate(-2deg) scaleY(0.95); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }
@keyframes sc-candle { 0% { transform: scale(1) rotate(-2deg); opacity: .8; box-shadow: 0 0 20px 10px rgba(232,160,64,.4); } 50% { transform: scale(1.05) rotate(2deg); opacity: 1; box-shadow: 0 0 40px 20px rgba(232,160,64,.7); } 100% { transform: scale(0.95) rotate(-1deg); opacity: .9; box-shadow: 0 0 25px 12px rgba(232,160,64,.5); } }

.scn-suspicious-details { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #cbaa7a 0%, #2a1a0a 80%); }
.scn-suspicious-details .bg-shelf { position: absolute; top: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-suspicious-details .desk { position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%; background: linear-gradient(180deg, #8c7a63 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.4); }
.scn-suspicious-details .paper-paper-1 { position: absolute; bottom: 35%; left: 20%; width: 20%; height: 12%; background: #f4ecc2; border: 1px solid #d4c48a; border-radius: 2%; box-shadow: 2px 2px 5px rgba(0,0,0,.3), inset 0 0 10px rgba(0,0,0,.05); transform-origin: center bottom; animation: sd-paper 12s ease-in-out infinite alternate; }
.scn-suspicious-details .paper-paper-2 { position: absolute; bottom: 30%; left: 45%; width: 25%; height: 15%; background: #ece4ba; border: 1px solid #ccc48a; border-radius: 2%; box-shadow: 2px 2px 5px rgba(0,0,0,.3), inset 0 0 10px rgba(0,0,0,.05); transform-origin: center bottom; animation: sd-paper 15s ease-in-out infinite alternate-reverse; }
.scn-suspicious-details .paper-paper-3 { position: absolute; bottom: 40%; right: 15%; width: 15%; height: 10%; background: #f0e8c0; border: 1px solid #d0c48a; border-radius: 2%; box-shadow: 2px 2px 5px rgba(0,0,0,.3), inset 0 0 10px rgba(0,0,0,.05); transform-origin: center bottom; animation: sd-paper 10s ease-in-out infinite alternate; }
.scn-suspicious-details .hands-holmes { position: absolute; bottom: 20%; left: 25%; width: 15%; height: 20%; background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: 50% 100%; animation: sd-point 6s ease-in-out infinite; }
.scn-suspicious-details .hands-watson { position: absolute; bottom: 20%; right: 25%; width: 18%; height: 18%; background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%); border-radius: 50% 50% 30% 30% / 50% 50% 20% 20%; transform-origin: 50% 100%; animation: sd-point 6s ease-in-out infinite 3s; }
.scn-suspicious-details .desk-lamp { position: absolute; bottom: 50%; left: 48%; width: 4%; height: 25%; background: linear-gradient(180deg, #c8a86a 0%, #8c6a3a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 15px 5px rgba(200,168,106,.5); }
.scn-suspicious-details .lamp-glow { position: absolute; bottom: 50%; left: 45%; width: 10%; height: 15%; background: radial-gradient(circle, #f5e0b0 0%, #e8c88a 50%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: sd-glow 4s ease-in-out infinite alternate; }
@keyframes sd-paper { 0% { transform: rotate(-5deg) translateY(0) scale(1); } 50% { transform: rotate(2deg) translateY(-5%) scale(1.02); } 100% { transform: rotate(-2deg) translateY(0) scale(1); } }
@keyframes sd-point { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10%) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sd-glow { 0% { opacity: .7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(1); } }

.scn-holmes-requests-bicycle{background:linear-gradient(180deg,#5a6a7a 40%,#2a3a4a 60%,#1a2a2a 100%)}
.scn-holmes-requests-bicycle .a{position:absolute;bottom:30%;left:30%;width:40%;height:5%;background:#6a5a4a;border-radius:3px;transform:perspective(40px)rotateX(10deg);animation:hrb-t 7s ease-in-out infinite alternate}
.scn-holmes-requests-bicycle .b{position:absolute;bottom:34%;left:20%;width:7%;height:20%;background:linear-gradient(180deg,#2a3a4a,#1a2a3a);border-radius:50%50%40%40%/60%60%40%40%;animation:hrb-h 5s ease-in-out infinite alternate}
.scn-holmes-requests-bicycle .c{position:absolute;bottom:34%;right:20%;width:7%;height:18%;background:linear-gradient(180deg,#3a4a3a,#2a3a2a);border-radius:50%50%40%40%/60%60%40%40%;animation:hrb-s 6s ease-in-out infinite alternate}
.scn-holmes-requests-bicycle .d{position:absolute;bottom:40%;right:10%;width:15%;height:25%;background:rgba(120,140,160,0.3);border:1px solid #4a5a6a;border-radius:2px;animation:hrb-w 12s ease-in-out infinite alternate}
.scn-holmes-requests-bicycle .e{position:absolute;bottom:48%;right:15%;width:3%;height:4%;background:radial-gradient(circle,#d0c080,#a09060);border-radius:50%;box-shadow:0 0 15px 5px rgba(208,192,128,0.4);animation:hrb-l 3s ease-in-out infinite alternate}
@keyframes hrb-t{0%{transform:translateY(0) rotateX(10deg)}50%{transform:translateY(-1px) rotateX(8deg)}100%{transform:translateY(0) rotateX(10deg)}}
@keyframes hrb-h{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(1deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes hrb-s{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-1.5px) rotate(-1deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes hrb-w{0%,100%{opacity:.6}50%{opacity:.8}}
@keyframes hrb-l{0%{box-shadow:0 0 10px 2px rgba(208,192,128,.3)}50%{box-shadow:0 0 25px 8px rgba(208,192,128,.6)}100%{box-shadow:0 0 10px 2px rgba(208,192,128,.3)}}

.scn-holmes-recovers-ankle{background:linear-gradient(180deg,#4a5a5a 40%,#2a3a3a 60%,#1a2a2a 100%),radial-gradient(at 70% 30%,#5a7a6a,transparent 50%)}
.scn-holmes-recovers-ankle .a{position:absolute;bottom:30%;left:25%;width:50%;height:4%;background:#5a4a3a;border-radius:2px;animation:hr-a 6s ease-in-out infinite alternate}
.scn-holmes-recovers-ankle .b{position:absolute;bottom:34%;left:28%;width:7%;height:18%;background:linear-gradient(180deg,#2a3a3a,#1a2a2a);border-radius:50%50%40%40%/60%60%40%40%;animation:hr-b 4s ease-in-out infinite alternate}
.scn-holmes-recovers-ankle .c{position:absolute;bottom:34%;right:25%;width:7%;height:16%;background:linear-gradient(180deg,#3a4a3a,#2a3a2a);border-radius:50%50%40%40%/60%60%40%40%;animation:hr-c 5s ease-in-out infinite alternate}
.scn-holmes-recovers-ankle .d{position:absolute;bottom:42%;left:60%;width:12%;height:22%;background:linear-gradient(180deg,#6a4a3a,#3a2a1a);border-radius:4px 4px 0 0;box-shadow:inset 0 4px 8px rgba(0,0,0,.3);animation:hr-d 8s ease-in-out infinite alternate}
.scn-holmes-recovers-ankle .e{position:absolute;bottom:40%;right:10%;width:14%;height:24%;background:rgba(100,120,130,0.3);border:1px solid #3a4a4a;border-radius:3px;animation:hr-e 10s ease-in-out infinite alternate}
@keyframes hr-a{0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)}}
@keyframes hr-b{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-1.5px) rotate(1deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes hr-c{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-1px) rotate(-1deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes hr-d{0%{opacity:.8}50%{opacity:1}100%{opacity:.6}}
@keyframes hr-e{0%,100%{opacity:.5}50%{opacity:.7}}

.scn-holmes-cow-track-insight{background:linear-gradient(180deg,#4a5a6a 40%,#2a3a3a 60%,#1a2a1a 100%),radial-gradient(at 20% 80%,#3a4a3a,transparent 60%)}
.scn-holmes-cow-track-insight .a{position:absolute;top:10%;left:10%;width:30%;height:12%;background:rgba(160,170,180,0.3);border-radius:50%;filter:blur(3px);animation:hct-a 20s linear infinite}
.scn-holmes-cow-track-insight .b{position:absolute;bottom:32%;left:20%;width:8%;height:22%;background:linear-gradient(180deg,#1a2a3a,#0a1a2a);border-radius:50%50%40%40%/60%60%40%40%;animation:hct-b 3s ease-in-out infinite alternate}
.scn-holmes-cow-track-insight .c{position:absolute;bottom:32%;right:25%;width:8%;height:20%;background:linear-gradient(180deg,#2a3a3a,#1a2a2a);border-radius:50%50%40%40%/60%60%40%40%;animation:hct-c 3.5s ease-in-out infinite alternate}
.scn-holmes-cow-track-insight .d{position:absolute;bottom:18%;left:35%;width:6%;height:4%;background:#3a4a3a;border-radius:40%;transform:rotate(15deg);animation:hct-d 4s ease-in-out infinite forwards}
.scn-holmes-cow-track-insight .e{position:absolute;bottom:18%;right:40%;width:5%;height:3%;background:#3a4a3a;border-radius:40%;transform:rotate(-10deg);animation:hct-e 4.5s ease-in-out infinite forwards}
@keyframes hct-a{0%{transform:translateX(0)}100%{transform:translateX(80vw)}}
@keyframes hct-b{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(3deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes hct-c{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-1.5px) rotate(-2deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes hct-d{0%{transform:translateY(0) scale(1) rotate(15deg)}50%{transform:translateY(-3px) scale(1.1) rotate(20deg)}100%{transform:translateY(0) scale(1) rotate(15deg)}}
@keyframes hct-e{0%{transform:translateY(0) scale(1) rotate(-10deg)}50%{transform:translateY(-2px) scale(1.08) rotate(-5deg)}100%{transform:translateY(0) scale(1) rotate(-10deg)}}

.scn-holmes-demonstrates-track-patterns{background:linear-gradient(180deg,#4a5a6a 30%,#2a3a3a 50%,#1a2a1a 100%),radial-gradient(at 80% 70%,#3a4a3a,transparent 50%)}
.scn-holmes-demonstrates-track-patterns .a{position:absolute;top:8%;right:15%;width:25%;height:10%;background:rgba(150,160,170,0.4);border-radius:50%;filter:blur(4px);animation:hdt-a 30s linear infinite reverse}
.scn-holmes-demonstrates-track-patterns .b{position:absolute;bottom:30%;left:15%;width:8%;height:24%;background:linear-gradient(180deg,#1a2a3a,#0a1a2a);border-radius:50%50%40%40%/60%60%40%40%;animation:hdt-b 2s ease-in-out infinite alternate}
.scn-holmes-demonstrates-track-patterns .c{position:absolute;bottom:28%;right:20%;width:8%;height:22%;background:linear-gradient(180deg,#2a3a3a,#1a2a2a);border-radius:50%50%40%40%/60%60%40%40%;animation:hdt-c 2.5s ease-in-out infinite alternate}
.scn-holmes-demonstrates-track-patterns .d{position:absolute;bottom:22%;left:30%;width:4%;height:3%;background:#3a4a3a;border-radius:40%;animation:hdt-d 3s ease-in-out infinite}
.scn-holmes-demonstrates-track-patterns .e{position:absolute;bottom:22%;left:40%;width:5%;height:3%;background:#4a5a3a;border-radius:40%;transform:rotate(20deg);animation:hdt-e 3.5s ease-in-out infinite}
.scn-holmes-demonstrates-track-patterns .f{position:absolute;bottom:22%;left:50%;width:6%;height:3%;background:#3a4a3a;border-radius:40%;transform:rotate(5deg);animation:hdt-f 4s ease-in-out infinite}
@keyframes hdt-a{0%{transform:translateX(0)}100%{transform:translateX(-100vw)}}
@keyframes hdt-b{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(4deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes hdt-c{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(-3deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes hdt-d{0%{transform:translateY(0) scale(1) rotate(0)}33%{transform:translateY(-2px) scale(1.1) rotate(10deg)}66%{transform:translateY(-1px) scale(1.05) rotate(-5deg)}100%{transform:translateY(0) scale(1) rotate(0)}}
@keyframes hdt-e{0%{transform:translateY(0) scale(1) rotate(20deg)}33%{transform:translateY(-3px) scale(1.15) rotate(25deg)}66%{transform:translateY(-2px) scale(1.1) rotate(15deg)}100%{transform:translateY(0) scale(1) rotate(20deg)}}
@keyframes hdt-f{0%{transform:translateY(0) scale(1) rotate(5deg)}33%{transform:translateY(-2.5px) scale(1.12) rotate(10deg)}66%{transform:translateY(-1.5px) scale(1.06) rotate(0deg)}100%{transform:translateY(0) scale(1) rotate(5deg)}}

.scn-different-worlds { background: linear-gradient(180deg, #f5e6d3 0%, #d9bca8 30%, #b89a7a 60%, #8a6e4e 100%), radial-gradient(ellipse at 80% 20%, #fff8e7 0%, transparent 60%); }
.scn-different-worlds .dw-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #e8d5c0 0%, #d6bcaa 50%, #c4a692 100%); }
.scn-different-worlds .dw-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); }
.scn-different-worlds .dw-desk { position:absolute; bottom:35%; left:15%; width:25%; height:10%; background: linear-gradient(180deg, #8b6f4a 0%, #6b4f2a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-different-worlds .dw-bookshelf { position:absolute; bottom:30%; right:10%; width:20%; height:45%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-different-worlds .dw-lamp { position:absolute; bottom:45%; left:35%; width:10px; height:20px; background: #c0a080; border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px #ffd700, 0 0 60px 20px rgba(255,215,0,.4); animation: dw-lamp 4s ease-in-out infinite alternate; }
.scn-different-worlds .dw-holmes { position:absolute; bottom:30%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dw-breathe 6s ease-in-out infinite; }
.scn-different-worlds .dw-overton { position:absolute; bottom:25%; left:45%; width:50px; height:90px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: dw-sway 8s ease-in-out infinite; }
.scn-different-worlds .dw-window { position:absolute; bottom:45%; right:20%; width:50px; height:70px; background: linear-gradient(180deg, #aac8e0 0%, #7aa8c8 100%); border: 4px solid #3a2a1a; border-radius: 6%; box-shadow: inset 0 0 20px rgba(255,255,255,.3); animation: dw-light 10s ease-in-out infinite alternate; }
@keyframes dw-lamp { 0% { box-shadow: 0 0 20px 5px #ffd700, 0 0 40px 10px rgba(255,215,0,.3); } 50% { box-shadow: 0 0 40px 15px #ffe080, 0 0 80px 25px rgba(255,224,128,.5); } 100% { box-shadow: 0 0 25px 8px #ffd700, 0 0 50px 15px rgba(255,215,0,.4); } }
@keyframes dw-breathe { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(1px); } }
@keyframes dw-sway { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(2deg) translateX(2px); } 75% { transform: rotate(-2deg) translateX(-2px); } }
@keyframes dw-light { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

.scn-overton-tells-story { background: linear-gradient(180deg, #f0e0cc 0%, #d4b89a 40%, #b09070 100%), radial-gradient(ellipse at 50% 30%, #fff5e6 0%, transparent 70%); }
.scn-overton-tells-story .ot-backdrop { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #dcc8b4 0%, #b89878 100%); }
.scn-overton-tells-story .ot-chair-holmes { position:absolute; bottom:30%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ot-nod 7s ease-in-out infinite; }
.scn-overton-tells-story .ot-chair-overton { position:absolute; bottom:30%; left:55%; width:50px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ot-gesture 5s ease-in-out infinite; }
.scn-overton-tells-story .ot-table { position:absolute; bottom:30%; left:35%; width:40px; height:15px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 8%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-overton-tells-story .ot-lamp { position:absolute; bottom:40%; left:45%; width:12px; height:18px; background: #c0a080; border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #ffd700, 0 0 40px 12px rgba(255,215,0,.3); animation: ot-lamp 3s ease-in-out infinite; }
.scn-overton-tells-story .ot-rug { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background: linear-gradient(90deg, #8a4a3a 0%, #6a3a2a 50%, #8a4a3a 100%); border-radius: 50% 50% 10% 10%; opacity:0.7; }
.scn-overton-tells-story .ot-curtain { position:absolute; top:0; left:80%; width:20%; height:100%; background: linear-gradient(90deg, #c8a888 0%, #a88868 100%); border-radius: 0 20% 20% 0; animation: ot-curtain 12s ease-in-out infinite alternate; }
@keyframes ot-lamp { 0%, 100% { box-shadow: 0 0 15px 4px #ffd700, 0 0 30px 8px rgba(255,215,0,.2); } 30% { box-shadow: 0 0 25px 8px #ffe080, 0 0 50px 15px rgba(255,224,128,.4); } 60% { box-shadow: 0 0 20px 6px #ffd700, 0 0 40px 10px rgba(255,215,0,.3); } }
@keyframes ot-gesture { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(5deg) translateX(3px); } 75% { transform: rotate(-3deg) translateX(-2px); } }
@keyframes ot-nod { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes ot-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }

.scn-godfrey-seemed-pale { background: linear-gradient(180deg, #e8e0d8 0%, #c8b8a8 40%, #a89880 100%), radial-gradient(ellipse at 80% 60%, #f0e8e0 0%, transparent 70%); }
.scn-godfrey-seemed-pale .gp-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d8d0c8 0%, #b8a898 100%); }
.scn-godfrey-seemed-pale .gp-bed { position:absolute; bottom:10%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #f0e8e0 0%, #d0c0b0 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-godfrey-seemed-pale .gp-godfrey { position:absolute; bottom:20%; left:30%; width:35px; height:55px; background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gp-tremble 3s ease-in-out infinite; }
.scn-godfrey-seemed-pale .gp-narrator { position:absolute; bottom:20%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gp-move 9s ease-in-out infinite; }
.scn-godfrey-seemed-pale .gp-lamp { position:absolute; bottom:35%; left:50%; width:10px; height:15px; background: #e8d0b0; border-radius: 50% 50% 10% 10%; box-shadow: 0 0 15px 4px #ffe0b0, 0 0 30px 8px rgba(255,224,176,.3); animation: gp-lamp 5s ease-in-out infinite alternate; }
.scn-godfrey-seemed-pale .gp-window { position:absolute; bottom:40%; right:10%; width:40px; height:60px; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%); border: 3px solid #5a4a3a; border-radius: 6%; box-shadow: inset 0 0 10px rgba(255,255,255,.1); }
.scn-godfrey-seemed-pale .gp-curtain { position:absolute; top:0; right:10%; width:15%; height:100%; background: linear-gradient(90deg, #e8d8c8 0%, #c8b8a8 100%); border-radius: 0 0 0 20%; animation: gp-curtain 15s ease-in-out infinite alternate; }
@keyframes gp-tremble { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(1px); } 75% { transform: translateX(-1px); } }
@keyframes gp-move { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes gp-lamp { 0% { box-shadow: 0 0 10px 2px #ffe0b0, 0 0 20px 5px rgba(255,224,176,.2); } 50% { box-shadow: 0 0 20px 6px #ffeedd, 0 0 40px 12px rgba(255,238,221,.4); } 100% { box-shadow: 0 0 12px 3px #ffe0b0, 0 0 24px 6px rgba(255,224,176,.3); } }
@keyframes gp-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }

.scn-godfrey-leaves { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #1a1a2a 100%), radial-gradient(ellipse at 20% 80%, #2a2a4a 0%, transparent 70%); }
.scn-godfrey-leaves .gl-hallway { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); }
.scn-godfrey-leaves .gl-door { position:absolute; bottom:20%; left:30%; width:30%; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.8); transform-origin: left center; animation: gl-door 10s ease-in-out infinite; }
.scn-godfrey-leaves .gl-godfrey { position:absolute; bottom:20%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gl-run 3s linear infinite; }
.scn-godfrey-leaves .gl-roughman { position:absolute; bottom:20%; left:55%; width:35px; height:65px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gl-run 3s linear infinite 0.5s; }
.scn-godfrey-leaves .gl-lantern { position:absolute; bottom:45%; left:20%; width:8px; height:12px; background: #d0b080; border-radius: 50% 50% 10% 10%; box-shadow: 0 0 10px 3px #ffd700, 0 0 20px 6px rgba(255,215,0,.3); animation: gl-lantern 2s ease-in-out infinite; }
.scn-godfrey-leaves .gl-window { position:absolute; bottom:30%; right:10%; width:50px; height:60px; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%); border: 3px solid #3a3a4a; border-radius: 6%; }
.scn-godfrey-leaves .gl-street { position:absolute; bottom:30%; right:10%; width:50px; height:60px; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%); opacity:0.5; animation: gl-street 4s linear infinite; }
@keyframes gl-run { 0% { transform: translateX(0); } 100% { transform: translateX(30px); } }
@keyframes gl-lantern { 0%, 100% { box-shadow: 0 0 8px 2px #ffd700, 0 0 16px 4px rgba(255,215,0,.2); } 50% { box-shadow: 0 0 15px 5px #ffe080, 0 0 30px 10px rgba(255,224,128,.4); } }
@keyframes gl-street { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes gl-door { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(-10deg); } }

/* Scene: tending-to-huxtable */
.scn-tending-to-huxtable { background: linear-gradient(180deg, #f5e2d3 0%, #e6c8a8 100%), radial-gradient(ellipse at 70% 30%, rgba(255,230,200,0.4) 0%, transparent 60%); }
.scn-tending-to-huxtable .bg-wall { position:absolute; inset:0; }
.scn-tending-to-huxtable .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b5e3c 0%, #6b3e1c 100%); border-top:2px solid #7a4e2e; box-shadow:inset 0 5px 10px rgba(0,0,0,0.3); animation:tth-floor 20s ease-in-out infinite alternate; }
.scn-tending-to-huxtable .couch { position:absolute; bottom:20%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20px 20px 10px 10px; box-shadow:0 10px 20px rgba(0,0,0,0.5); animation:tth-couch 10s ease-in-out infinite; }
.scn-tending-to-huxtable .figure-lying { position:absolute; bottom:30%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation:tth-figure 4s ease-in-out infinite; }
.scn-tending-to-huxtable .cushion { position:absolute; bottom:43%; left:32%; width:15%; height:8%; background: linear-gradient(135deg, #c8a882 0%, #a08060 100%); border-radius:20% 20% 10% 10%; box-shadow:0 2px 5px rgba(0,0,0,0.3); animation:tth-cushion 2s ease-in-out infinite; }
.scn-tending-to-huxtable .figure-standing { position:absolute; bottom:35%; right:20%; width:15%; height:50%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:30% 30% 0% 0% / 60% 60% 0% 0%; animation:tth-standing 6s ease-in-out infinite; }
.scn-tending-to-huxtable .lamp { position:absolute; bottom:25%; left:15%; width:8%; height:30%; background: linear-gradient(180deg, #888 0%, #444 100%); border-radius:10px; box-shadow:0 0 20px rgba(255,200,100,0.5); animation:tth-lamp 3s ease-in-out infinite alternate; }
.scn-tending-to-huxtable .bottle { position:absolute; bottom:28%; left:10%; width:4%; height:10%; background: linear-gradient(90deg, #d4a060 0%, #b08040 50%, #d4a060 100%); border-radius:0 0 20% 20%; box-shadow:0 2px 5px rgba(0,0,0,0.4); animation:tth-bottle 8s ease-in-out infinite; }
@keyframes tth-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tth-couch { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes tth-figure { 0% { transform:translateY(0) rotate(-5deg) } 50% { transform:translateY(-3px) rotate(-4deg) } 100% { transform:translateY(0) rotate(-5deg) } }
@keyframes tth-cushion { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes tth-standing { 0%,100% { transform:translateX(0) } 50% { transform:translateX(2px) } }
@keyframes tth-lamp { 0% { box-shadow:0 0 15px rgba(255,200,100,0.3) } 50% { box-shadow:0 0 25px rgba(255,200,100,0.6) } 100% { box-shadow:0 0 18px rgba(255,200,100,0.4) } }
@keyframes tth-bottle { 0%,100% { transform:rotate(0) } 50% { transform:rotate(2deg) } }

/* Scene: examining-huxtable */
.scn-examining-huxtable { background: linear-gradient(180deg, #f2dcc2 0%, #e2c4a4 100%), radial-gradient(ellipse at 40% 50%, rgba(255,230,210,0.5) 0%, transparent 70%); }
.scn-examining-huxtable .bg-wall { position:absolute; inset:0; }
.scn-examining-huxtable .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b5e3c 0%, #6b3e1c 100%); border-top:2px solid #7a4e2e; box-shadow:inset 0 5px 10px rgba(0,0,0,0.3); animation:exh-floor 20s ease-in-out infinite alternate; }
.scn-examining-huxtable .couch { position:absolute; bottom:20%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20px 20px 10px 10px; box-shadow:0 10px 20px rgba(0,0,0,0.5); animation:exh-couch 10s ease-in-out infinite; }
.scn-examining-huxtable .figure-lying { position:absolute; bottom:30%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation:exh-figure 4s ease-in-out infinite; }
.scn-examining-huxtable .table { position:absolute; bottom:30%; left:10%; width:12%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:5px; box-shadow:0 2px 5px rgba(0,0,0,0.5); animation:exh-table 12s ease-in-out infinite; }
.scn-examining-huxtable .bag { position:absolute; bottom:20%; left:8%; width:10%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,0.6); animation:exh-bag 15s ease-in-out infinite; }
.scn-examining-huxtable .lamp { position:absolute; bottom:25%; right:15%; width:8%; height:30%; background: linear-gradient(180deg, #888 0%, #444 100%); border-radius:10px; box-shadow:0 0 20px rgba(255,200,100,0.5); animation:exh-lamp 3s ease-in-out infinite alternate; }
.scn-examining-huxtable .hand-inspect { position:absolute; bottom:40%; left:40%; width:6%; height:12%; background: linear-gradient(180deg, #d4b090 0%, #c09070 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(10deg); animation:exh-hand 3s ease-in-out infinite; }
@keyframes exh-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes exh-couch { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes exh-figure { 0% { transform:translateY(0) rotate(-5deg) } 50% { transform:translateY(-3px) rotate(-4deg) } 100% { transform:translateY(0) rotate(-5deg) } }
@keyframes exh-table { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes exh-bag { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes exh-lamp { 0% { box-shadow:0 0 15px rgba(255,200,100,0.3) } 50% { box-shadow:0 0 25px rgba(255,200,100,0.6) } 100% { box-shadow:0 0 18px rgba(255,200,100,0.4) } }
@keyframes exh-hand { 0%,100% { transform:translateY(0) rotate(10deg) } 50% { transform:translateY(-2px) rotate(12deg) } }

/* Scene: huxtable-revives */
.scn-huxtable-revives { background: linear-gradient(180deg, #fef8f0 0%, #f0e6d8 100%), radial-gradient(ellipse at 50% 0%, rgba(255,255,230,0.6) 0%, transparent 60%); }
.scn-huxtable-revives .bg-wall { position:absolute; inset:0; }
.scn-huxtable-revives .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b89870 0%, #987850 100%); border-top:2px solid #a08060; box-shadow:inset 0 5px 10px rgba(0,0,0,0.15); animation:hre-floor 30s ease-in-out infinite alternate; }
.scn-huxtable-revives .couch { position:absolute; bottom:20%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:20px 20px 10px 10px; box-shadow:0 10px 20px rgba(0,0,0,0.3); animation:hre-couch 20s ease-in-out infinite; }
.scn-huxtable-revives .figure-body { position:absolute; bottom:30%; left:35%; width:30%; height:18%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-3deg); animation:hre-body 8s ease-in-out infinite; }
.scn-huxtable-revives .figure-head { position:absolute; bottom:46%; left:42%; width:8%; height:10%; background: radial-gradient(circle at 50% 30%, #d4b898 0%, #b09070 100%); border-radius:50%; animation:hre-head 6s ease-in-out infinite; }
.scn-huxtable-revives .blanket { position:absolute; bottom:26%; left:32%; width:35%; height:12%; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); border-radius:20% 20% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,0.2); animation:hre-blanket 12s ease-in-out infinite; }
.scn-huxtable-revives .window { position:absolute; top:10%; right:10%; width:25%; height:35%; background: linear-gradient(135deg, #fff8e0 0%, #f0e0c0 100%); border-radius:5px; box-shadow:0 0 30px rgba(255,255,200,0.4); animation:hre-window 15s ease-in-out infinite alternate; }
.scn-huxtable-revives .lamp { position:absolute; bottom:25%; left:15%; width:8%; height:28%; background: linear-gradient(180deg, #aaa 0%, #666 100%); border-radius:10px; box-shadow:0 0 15px rgba(255,200,150,0.4); animation:hre-lamp 8s ease-in-out infinite alternate; }
.scn-huxtable-revives .hand-offer { position:absolute; bottom:40%; left:30%; width:6%; height:14%; background: linear-gradient(180deg, #d4b898 0%, #c09070 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(5deg); animation:hre-hand 5s ease-in-out infinite; }
@keyframes hre-floor { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hre-couch { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes hre-body { 0% { transform:translateY(0) rotate(-3deg) } 50% { transform:translateY(-2px) rotate(-2deg) } 100% { transform:translateY(0) rotate(-3deg) } }
@keyframes hre-head { 0% { transform:translateY(0) } 30% { transform:translateY(-4px) } 60% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes hre-blanket { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes hre-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hre-lamp { 0% { box-shadow:0 0 10px rgba(255,200,150,0.2) } 50% { box-shadow:0 0 20px rgba(255,200,150,0.5) } 100% { box-shadow:0 0 12px rgba(255,200,150,0.3) } }
@keyframes hre-hand { 0%,100% { transform:translateY(0) rotate(5deg) } 50% { transform:translateY(-1px) rotate(7deg) } }

/* Scene: huxtable-pleads */
.scn-huxtable-pleads { background: linear-gradient(180deg, #f5e2d3 0%, #e6c8a8 100%), radial-gradient(ellipse at 60% 70%, rgba(230,200,170,0.6) 0%, transparent 70%); }
.scn-huxtable-pleads .bg-wall { position:absolute; inset:0; }
.scn-huxtable-pleads .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a5030 0%, #5a3010 100%); border-top:2px solid #6a4020; box-shadow:inset 0 5px 10px rgba(0,0,0,0.4); animation:hpl-floor 15s ease-in-out infinite alternate; }
.scn-huxtable-pleads .couch { position:absolute; bottom:20%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:20px 20px 10px 10px; box-shadow:0 10px 20px rgba(0,0,0,0.6); animation:hpl-couch 8s ease-in-out infinite; }
.scn-huxtable-pleads .figure-kneel { position:absolute; bottom:22%; left:30%; width:20%; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; transform:rotate(5deg); animation:hpl-kneel 3s ease-in-out infinite; }
.scn-huxtable-pleads .arm-plead { position:absolute; bottom:35%; left:28%; width:4%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:20% 20% 10% 10%; transform:rotate(-30deg); transform-origin:bottom left; animation:hpl-arm 2s ease-in-out infinite alternate; }
.scn-huxtable-pleads .shadow { position:absolute; bottom:20%; left:25%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); filter:blur(8px); animation:hpl-shadow 6s ease-in-out infinite; }
.scn-huxtable-pleads .lamp { position:absolute; bottom:25%; right:10%; width:10%; height:35%; background: linear-gradient(180deg, #666 0%, #222 100%); border-radius:10px; box-shadow:0 0 30px rgba(255,180,80,0.6); animation:hpl-lamp 4s ease-in-out infinite alternate; }
.scn-huxtable-pleads .figure-standing-hpl { position:absolute; bottom:35%; right:25%; width:12%; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:30% 30% 0% 0% / 60% 60% 0% 0%; animation:hpl-standing 5s ease-in-out infinite; }
@keyframes hpl-floor { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hpl-couch { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes hpl-kneel { 0%,100% { transform:translateY(0) rotate(5deg) } 50% { transform:translateY(-3px) rotate(3deg) } }
@keyframes hpl-arm { 0% { transform:rotate(-30deg) } 100% { transform:rotate(-20deg) } }
@keyframes hpl-shadow { 0%,100% { opacity:0.6 } 50% { opacity:0.8 } }
@keyframes hpl-lamp { 0% { box-shadow:0 0 20px rgba(255,180,80,0.3) } 50% { box-shadow:0 0 40px rgba(255,180,80,0.7) } 100% { box-shadow:0 0 25px rgba(255,180,80,0.4) } }
@keyframes hpl-standing { 0%,100% { transform:translateX(0) } 50% { transform:translateX(3px) } }

/* scene: eyes-set-near-nose */
.scn-eyes-set-near-nose {
  background: linear-gradient(135deg, #f5e6d3 0%, #d4c4a8 100%), radial-gradient(circle at 30% 40%, #fff5e6 0%, transparent 50%);
}
.scn-eyes-set-near-nose .esn-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #cab69a 100%);
  animation: esn-wall 12s ease-in-out infinite alternate;
}
.scn-eyes-set-near-nose .esn-table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b7d6b 0%, #5c5040 100%);
  animation: esn-table 10s ease-in-out infinite;
}
.scn-eyes-set-near-nose .esn-glasses-l {
  position: absolute; bottom: 40%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(circle, #d9e2ec 0%, #b0c4de 50%, #7a8ea8 100%);
  border-radius: 50%; border: 2px solid #a58e7a;
  animation: esn-lens 8s ease-in-out infinite alternate;
}
.scn-eyes-set-near-nose .esn-glasses-r {
  position: absolute; bottom: 40%; right: 30%; width: 40px; height: 30px;
  background: radial-gradient(circle, #d9e2ec 0%, #b0c4de 50%, #7a8ea8 100%);
  border-radius: 50%; border: 2px solid #a58e7a;
  animation: esn-lens 8s ease-in-out infinite alternate reverse;
}
.scn-eyes-set-near-nose .esn-bridge {
  position: absolute; bottom: 45%; left: 50%; width: 20px; height: 4px;
  transform: translateX(-50%); background: #a58e7a; border-radius: 2px;
  animation: esn-bridge 6s ease-in-out infinite;
}
.scn-eyes-set-near-nose .esn-temple {
  position: absolute; bottom: 42%; left: 25%; width: 40px; height: 4px;
  transform: rotate(-10deg); background: #a58e7a; border-radius: 2px;
  animation: esn-temple 9s ease-in-out infinite;
}
.scn-eyes-set-near-nose .esn-lamp-base {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a060 0%, #806040 100%);
  border-radius: 5px 5px 0 0;
  animation: esn-lamp 11s ease-in-out infinite;
}
.scn-eyes-set-near-nose .esn-lamp-glow {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, -30px);
  background: radial-gradient(circle, rgba(255,230,150,0.8) 0%, rgba(255,200,100,0.4) 50%, transparent 100%);
  border-radius: 50%;
  animation: esn-glow 4s ease-in-out infinite alternate;
}
@keyframes esn-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes esn-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes esn-lens { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes esn-bridge { 0% { transform: translateX(-50%) } 50% { transform: translateX(-48%) } 100% { transform: translateX(-52%) } }
@keyframes esn-temple { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-12deg) } }
@keyframes esn-lamp { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) } }
@keyframes esn-glow { 0% { opacity: 0.7; transform: translate(-50%, -30px) scale(1) } 100% { opacity: 1; transform: translate(-50%, -30px) scale(1.1) } }

/* scene: double-visit-optician */
.scn-double-visit-optician {
  background: linear-gradient(135deg, #d4c4a8 0%, #b0a090 100%), radial-gradient(circle at 70% 30%, #fff5e6 0%, transparent 60%);
}
.scn-double-visit-optician .dvo-bg-shop {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%);
  animation: dvo-bg 15s ease-in-out infinite;
}
.scn-double-visit-optician .dvo-counter {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 5px 5px 0 0;
  animation: dvo-counter 10s ease-in-out infinite;
}
.scn-double-visit-optician .dvo-gl1-l {
  position: absolute; bottom: 40%; left: 20%; width: 30px; height: 20px;
  background: radial-gradient(circle, #cbd9e0 0%, #a0b4c4 50%, #7a8ea8 100%);
  border-radius: 50%; border: 1px solid #886644;
  animation: dvo-lens 8s ease-in-out infinite;
}
.scn-double-visit-optician .dvo-gl1-r {
  position: absolute; bottom: 40%; left: 31%; width: 30px; height: 20px;
  background: radial-gradient(circle, #cbd9e0 0%, #a0b4c4 50%, #7a8ea8 100%);
  border-radius: 50%; border: 1px solid #886644;
  animation: dvo-lens 8s ease-in-out infinite reverse;
}
.scn-double-visit-optician .dvo-gl1-brdg {
  position: absolute; bottom: 43%; left: 27%; width: 10px; height: 4px;
  background: #886644; border-radius: 2px;
  animation: dvo-bridge 6s ease-in-out infinite;
}
.scn-double-visit-optician .dvo-gl2-l {
  position: absolute; bottom: 36%; left: 60%; width: 35px; height: 22px;
  background: radial-gradient(circle, #cbd9e0 0%, #a0b4c4 50%, #7a8ea8 100%);
  border-radius: 50%; border: 1px solid #886644;
  animation: dvo-lens2 10s ease-in-out infinite reverse;
}
.scn-double-visit-optician .dvo-gl2-r {
  position: absolute; bottom: 36%; left: 72%; width: 35px; height: 22px;
  background: radial-gradient(circle, #cbd9e0 0%, #a0b4c4 50%, #7a8ea8 100%);
  border-radius: 50%; border: 1px solid #886644;
  animation: dvo-lens2 10s ease-in-out infinite;
}
.scn-double-visit-optician .dvo-gl2-brdg {
  position: absolute; bottom: 40%; left: 67%; width: 12px; height: 4px;
  background: #886644; border-radius: 2px;
  animation: dvo-bridge2 7s ease-in-out infinite;
}
@keyframes dvo-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes dvo-counter { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes dvo-lens { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(0.97) } }
@keyframes dvo-lens2 { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes dvo-bridge { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes dvo-bridge2 { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }

/* scene: hopkins-ecstatic */
.scn-hopkins-ecstatic {
  background: linear-gradient(180deg, #f2d8b0 0%, #e0c090 100%), radial-gradient(circle at 30% 60%, #ffe0a0 0%, transparent 70%);
}
.scn-hopkins-ecstatic .hec-bg-room {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8c8a0 0%, #d0a880 100%);
  animation: hec-bg 14s ease-in-out infinite;
}
.scn-hopkins-ecstatic .hec-window-light {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 40% 20%, rgba(255,220,150,0.6) 0%, transparent 60%);
  animation: hec-light 6s ease-in-out infinite alternate;
}
.scn-hopkins-ecstatic .hec-figure {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hec-figure 4s ease-in-out infinite;
}
.scn-hopkins-ecstatic .hec-hat {
  position: absolute; bottom: 75%; left: 42%; width: 40px; height: 10px;
  background: #2a2018;
  border-radius: 50% 50% 20% 20%;
  animation: hec-hat 4s ease-in-out infinite;
}
.scn-hopkins-ecstatic .hec-table {
  position: absolute; bottom: 25%; left: 10%; right: 60%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  animation: hec-table 12s ease-in-out infinite;
}
.scn-hopkins-ecstatic .hec-chair {
  position: absolute; bottom: 25%; left: 15%; width: 20px; height: 40px;
  background: #4a3a2a;
  border-radius: 10px 10px 4px 4px;
  animation: hec-chair 11s ease-in-out infinite;
}
@keyframes hec-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hec-light { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes hec-figure { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-3px) rotate(8deg) } 50% { transform: translateY(0) rotate(10deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes hec-hat { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5px) rotate(-15deg) } 100% { transform: translateY(0) rotate(5deg) } }
@keyframes hec-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hec-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

/* scene: holmes-promises-visit */
.scn-holmes-promises-visit {
  background: linear-gradient(135deg, #d4c4a8 0%, #b0a090 100%), radial-gradient(circle at 60% 40%, #fff0d6 0%, transparent 60%);
}
.scn-holmes-promises-visit .hpv-bg-sitting {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
  animation: hpv-bg 16s ease-in-out infinite;
}
.scn-holmes-promises-visit .hpv-desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  animation: hpv-desk 10s ease-in-out infinite;
}
.scn-holmes-promises-visit .hpv-holmes-sil {
  position: absolute; bottom: 30%; left: 35%; width: 25px; height: 60px;
  background: #1a1210;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpv-holmes 6s ease-in-out infinite alternate;
}
.scn-holmes-promises-visit .hpv-watson-sil {
  position: absolute; bottom: 22%; left: 55%; width: 22px; height: 50px;
  background: #2a2018;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpv-watson 8s ease-in-out infinite alternate;
}
.scn-holmes-promises-visit .hpv-ticket {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 14px;
  background: #f0e0c0;
  border: 1px solid #886644;
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: hpv-ticket 7s ease-in-out infinite;
}
.scn-holmes-promises-visit .hpv-lamp {
  position: absolute; bottom: 35%; left: 25%; width: 15px; height: 35px;
  background: linear-gradient(180deg, #c0a060 0%, #806040 100%);
  border-radius: 4px 4px 0 0;
  animation: hpv-lamp 9s ease-in-out infinite;
}
.scn-holmes-promises-visit .hpv-lamp-glow {
  position: absolute; bottom: 35%; left: 25%; width: 40px; height: 40px;
  transform: translate(-20%, -50%);
  background: radial-gradient(circle, rgba(255,230,150,0.8) 0%, rgba(255,200,100,0.3) 50%, transparent 100%);
  border-radius: 50%;
  animation: hpv-glow 5s ease-in-out infinite alternate;
}
@keyframes hpv-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hpv-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hpv-holmes { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes hpv-watson { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes hpv-ticket { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-5deg) } }
@keyframes hpv-lamp { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hpv-glow { 0% { opacity: 0.7; transform: translate(-20%, -50%) scale(1) } 100% { opacity: 1; transform: translate(-20%, -50%) scale(1.15) } }

/* Scene: neligan-tells-story */
.scn-neligan-tells-story {
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #4a2a10 0%, transparent 60%);
}
.scn-neligan-tells-story .bg-nts {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); animation: bg-nts 12s ease-in-out infinite alternate;
}
.scn-neligan-tells-story .floor-nts {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0d05 100%); border-top: 2px solid #3a2a1a; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6); animation: floor-nts 8s ease-in-out infinite;
}
.scn-neligan-tells-story .fireplace-nts {
  position: absolute; bottom: 25%; left: 10%; width: 120px; height: 80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0d05 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 20px 5px rgba(200,100,20,0.5); animation: fire-nts 3s ease-in-out infinite alternate;
}
.scn-neligan-tells-story .glow-nts {
  position: absolute; bottom: 30%; left: 15%; width: 200px; height: 200px; background: radial-gradient(circle, rgba(255,150,40,0.6) 0%, rgba(200,100,20,0.2) 40%, transparent 70%); transform: translate(-30%, 20%); animation: glow-nts 2s ease-in-out infinite alternate;
}
.scn-neligan-tells-story .speaker-nts {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: speaker-nts 6s ease-in-out infinite;
}
.scn-neligan-tells-story .listener1-nts {
  position: absolute; bottom: 25%; left: 55%; width: 28px; height: 65px; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: listener-nts 7s ease-in-out infinite 0.5s;
}
.scn-neligan-tells-story .listener2-nts {
  position: absolute; bottom: 25%; left: 65%; width: 28px; height: 65px; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: listener-nts 7s ease-in-out infinite 1s;
}
@keyframes bg-nts { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes floor-nts { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fire-nts { 0% { box-shadow: 0 0 20px 5px rgba(200,100,20,0.5); } 50% { box-shadow: 0 0 30px 8px rgba(255,150,40,0.7); } 100% { box-shadow: 0 0 15px 3px rgba(200,100,20,0.4); } }
@keyframes glow-nts { 0% { opacity: 0.5; transform: translate(-30%, 20%) scale(1); } 50% { opacity: 0.8; transform: translate(-25%, 15%) scale(1.05); } 100% { opacity: 0.4; transform: translate(-30%, 20%) scale(0.95); } }
@keyframes speaker-nts { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes listener-nts { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Scene: neligan-continues */
.scn-neligan-continues {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 70%, #2a2a4e 0%, transparent 60%);
}
.scn-neligan-continues .bg-nc {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0a2e 0%, #1a1a3e 50%, #0d0d1a 100%); animation: bg-nc 20s ease-in-out infinite alternate;
}
.scn-neligan-continues .sea-nc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-top: 2px solid #2a3a4a; animation: sea-nc 10s ease-in-out infinite;
}
.scn-neligan-continues .ship-nc {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 40px; transform: translateX(-60%); background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); animation: ship-nc 8s ease-in-out infinite;
}
.scn-neligan-continues .moon-nc {
  position: absolute; top: 15%; right: 20%; width: 30px; height: 30px; background: radial-gradient(circle, #e0e0f0 0%, #c0c0d0 50%, #a0a0c0 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,200,255,0.3); animation: moon-nc 12s ease-in-out infinite alternate;
}
.scn-neligan-continues .frame-nc {
  position: absolute; inset: 5%; border: 4px solid #1a1a2a; border-radius: 8px; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); background: transparent; animation: frame-nc 4s ease-in-out infinite;
}
.scn-neligan-continues .silhouette-nc {
  position: absolute; bottom: 25%; left: 25%; width: 24px; height: 60px; background: #0d0d1a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sil-nc 5s ease-in-out infinite;
}
.scn-neligan-continues .lamp-nc {
  position: absolute; bottom: 40%; left: 30%; width: 8px; height: 8px; background: radial-gradient(circle, #ffd060 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(255,200,100,0.5); animation: lamp-nc 3s ease-in-out infinite alternate;
}
@keyframes bg-nc { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sea-nc { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes ship-nc { 0% { transform: translateX(-60%) rotate(0deg); } 50% { transform: translateX(-60%) rotate(-2deg); } 100% { transform: translateX(-60%) rotate(0deg); } }
@keyframes moon-nc { 0% { box-shadow: 0 0 20px 5px rgba(200,200,255,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 40px 10px rgba(200,200,255,0.4); opacity: 1; } 100% { box-shadow: 0 0 20px 5px rgba(200,200,255,0.2); opacity: 0.8; } }
@keyframes frame-nc { 0% { border-color: #1a1a2a; } 50% { border-color: #2a2a3a; } 100% { border-color: #1a1a2a; } }
@keyframes sil-nc { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lamp-nc { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

/* Scene: hopkins-accuses */
.scn-hopkins-accuses {
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-hopkins-accuses .bg-ha {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); animation: bg-ha 15s ease-in-out infinite alternate;
}
.scn-hopkins-accuses .table-ha {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 10%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: table-ha 10s ease-in-out infinite;
}
.scn-hopkins-accuses .lamp-ha {
  position: absolute; bottom: 35%; left: 50%; width: 10px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #ffd060 0%, #b08040 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 15px 5px rgba(255,200,100,0.4); animation: lamp-ha 3s ease-in-out infinite alternate;
}
.scn-hopkins-accuses .glow-ha {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 60%; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,0.3) 0%, transparent 70%); animation: glow-ha 2s ease-in-out infinite alternate;
}
.scn-hopkins-accuses .accuser-ha {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; transform: rotate(5deg); animation: accuser-ha 4s ease-in-out infinite;
}
.scn-hopkins-accuses .suspect-ha {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 80px; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; transform: rotate(-5deg); animation: suspect-ha 5s ease-in-out infinite;
}
.scn-hopkins-accuses .evidence-ha {
  position: absolute; top: 50%; left: 50%; width: 14px; height: 14px; transform: translate(-50%, -50%); background: radial-gradient(circle, #b08040 0%, #8a6020 100%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(200,150,50,0.6); animation: evidence-ha 6s ease-in-out infinite;
}
@keyframes bg-ha { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes table-ha { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes lamp-ha { 0% { box-shadow: 0 0 10px 2px rgba(255,200,100,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 20px 6px rgba(255,200,100,0.6); opacity: 1; } 100% { box-shadow: 0 0 10px 2px rgba(255,200,100,0.3); opacity: 0.8; } }
@keyframes glow-ha { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }
@keyframes accuser-ha { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes suspect-ha { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes evidence-ha { 0% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.1); } 100% { transform: translate(-50%, -50%) scale(1); } }

/* Scene: holmes-unconvinced */
.scn-holmes-unconvinced {
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, transparent 60%);
}
.scn-holmes-unconvinced .bg-hu {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); animation: bg-hu 30s ease-in-out infinite alternate;
}
.scn-holmes-unconvinced .window-hu {
  position: absolute; top: 15%; left: 10%; right: 10%; bottom: 35%; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 50%, #0a1a2a 100%); border: 3px solid #2a2a2a; border-radius: 4px; overflow: hidden; animation: window-hu 8s ease-in-out infinite;
}
.scn-holmes-unconvinced .seat1-hu {
  position: absolute; bottom: 10%; left: 5%; width: 30%; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); animation: seat-hu 10s ease-in-out infinite;
}
.scn-holmes-unconvinced .seat2-hu {
  position: absolute; bottom: 10%; right: 5%; width: 30%; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); animation: seat-hu 10s ease-in-out infinite 2s;
}
.scn-holmes-unconvinced .holmes-hu {
  position: absolute; bottom: 15%; left: 10%; width: 24px; height: 60px; background: #1a1a2a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: holmes-hu 6s ease-in-out infinite;
}
.scn-holmes-unconvinced .watson-hu {
  position: absolute; bottom: 15%; right: 10%; width: 24px; height: 60px; background: #1a1a2a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; transform: scaleX(-1); animation: watson-hu 6s ease-in-out infinite 1s;
}
.scn-holmes-unconvinced .lamp-hu {
  position: absolute; top: 25%; left: 50%; width: 8px; height: 12px; transform: translateX(-50%); background: radial-gradient(circle, #ffd060 0%, #b08040 100%); border-radius: 2px; box-shadow: 0 0 15px 5px rgba(255,200,100,0.3); animation: lamp-hu 4s ease-in-out infinite alternate;
}
@keyframes bg-hu { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes window-hu { 0% { background-position: 0% 0%; } 50% { background-position: 50% 0%; } 100% { background-position: 100% 0%; } }
@keyframes seat-hu { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes holmes-hu { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes watson-hu { 0% { transform: scaleX(-1) rotate(0deg) translateY(0); } 50% { transform: scaleX(-1) rotate(-2deg) translateY(-1px); } 100% { transform: scaleX(-1) rotate(0deg) translateY(0); } }
@keyframes lamp-hu { 0% { opacity: 0.7; box-shadow: 0 0 10px 2px rgba(255,200,100,0.2); } 50% { opacity: 1; box-shadow: 0 0 20px 6px rgba(255,200,100,0.4); } 100% { opacity: 0.7; box-shadow: 0 0 10px 2px rgba(255,200,100,0.2); } }

/* Scene: hopkins-warms-up */
.scn-hopkins-warms-up { background: linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #e08040 0%, transparent 60%); }
.scn-hopkins-warms-up .hearth { position: absolute; bottom: 8%; left: 50%; width: 40%; height: 30%; transform: translateX(-50%); background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%); border-radius: 12% 12% 4% 4% / 20% 20% 4% 4%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); }
.scn-hopkins-warms-up .fire { position: absolute; bottom: 20%; left: 50%; width: 18%; height: 20%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #c05020 40%, transparent 70%); border-radius: 50% 50% 10% 10%; animation: hw1-fire 0.8s ease-in-out infinite alternate; }
.scn-hopkins-warms-up .logs { position: absolute; bottom: 23%; left: 50%; width: 30%; height: 6%; transform: translateX(-50%) rotate(-2deg); background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 20% / 50%; box-shadow: 0 -2px 6px rgba(0,0,0,0.5); animation: hw1-logs 4s ease-in-out infinite; }
.scn-hopkins-warms-up .table { position: absolute; bottom: 10%; left: 22%; width: 28%; height: 14%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-hopkins-warms-up .lemon-slice { position: absolute; bottom: 17%; left: 30%; width: 6%; height: 7%; background: radial-gradient(circle, #f0e080 0%, #d0b040 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(240,224,128,0.4); animation: hw1-lemon 5s ease-in-out infinite; }
.scn-hopkins-warms-up .figure-left { position: absolute; bottom: 12%; left: 12%; width: 14%; height: 35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hw1-breathe 6s ease-in-out infinite alternate; }
.scn-hopkins-warms-up .figure-right { position: absolute; bottom: 12%; right: 12%; width: 14%; height: 35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hw1-breathe 6s ease-in-out infinite alternate-reverse; }
.scn-hopkins-warms-up .smoke { position: absolute; bottom: 40%; left: 50%; width: 14%; height: 20%; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%); filter: blur(6px); border-radius: 50%; animation: hw1-smoke 8s linear infinite; }
@keyframes hw1-fire { 0% { transform: translateX(-50%) scaleY(1) translateY(0); opacity: 0.9; } 50% { transform: translateX(-50%) scaleY(1.2) translateY(-4px); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.9) translateY(2px); opacity: 0.8; } }
@keyframes hw1-logs { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes hw1-lemon { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(0.95); } }
@keyframes hw1-breathe { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes hw1-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-20px) translateX(8px) scale(1.4); opacity: 0.3; } 100% { transform: translateY(-40px) translateX(-4px) scale(0.6); opacity: 0; } }

/* Scene: yoxley-case-paragraph */
.scn-yoxley-case-paragraph { background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%), radial-gradient(ellipse at 50% 60%, #d4a040 0%, transparent 70%); }
.scn-yoxley-case-paragraph .desk { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-top: 4px solid #4a3a2a; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-yoxley-case-paragraph .lamp { position: absolute; top: 12%; left: 50%; width: 12%; height: 28%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 70%, #e0b060 0%, #a08040 60%, transparent 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 8px rgba(224,176,96,0.5); animation: yc2-lamp 1.5s ease-in-out infinite alternate; }
.scn-yoxley-case-paragraph .newspaper { position: absolute; bottom: 25%; left: 35%; width: 30%; height: 20%; background: linear-gradient(180deg, #e8dcc8 0%, #d4c8b0 100%); border-radius: 2%; box-shadow: 2px 2px 8px rgba(0,0,0,0.3), 4px 4px 12px rgba(0,0,0,0.2); transform: rotate(-4deg); animation: yc2-paper 6s ease-in-out infinite; }
.scn-yoxley-case-paragraph .hand { position: absolute; bottom: 28%; left: 38%; width: 8%; height: 14%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); animation: yc2-hand 3s ease-in-out infinite alternate; }
.scn-yoxley-case-paragraph .shadow { position: absolute; bottom: 8%; left: 30%; width: 40%; height: 10%; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); animation: yc2-shadow 2s ease-in-out infinite alternate; }
.scn-yoxley-case-paragraph .clock { position: absolute; top: 10%; right: 18%; width: 10%; height: 14%; background: radial-gradient(circle, #e8dcc8 0%, #b0a090 100%); border-radius: 50%; border: 2px solid #6a5a4a; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: yc2-clock 1s steps(2) infinite; }
.scn-yoxley-case-paragraph .inkwell { position: absolute; bottom: 26%; right: 30%; width: 5%; height: 8%; background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0a00 100%); border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,0.6); }
.scn-yoxley-case-paragraph .pen { position: absolute; bottom: 30%; right: 32%; width: 2%; height: 15%; background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%); border-radius: 20% / 50%; transform: rotate(20deg); }
@keyframes yc2-lamp { 0% { box-shadow: 0 0 20px 4px rgba(224,176,96,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 40px 12px rgba(224,176,96,0.7); opacity: 1; } 100% { box-shadow: 0 0 25px 6px rgba(224,176,96,0.5); opacity: 0.85; } }
@keyframes yc2-paper { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes yc2-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(1px); } }
@keyframes yc2-shadow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.05); opacity: 0.8; } 100% { transform: scale(0.95); opacity: 0.5; } }
@keyframes yc2-clock { 0% { background: radial-gradient(circle, #e8dcc8 0%, #b0a090 100%); } 50% { background: radial-gradient(circle, #c0b0a0 0%, #908070 100%); } 100% { background: radial-gradient(circle, #e8dcc8 0%, #b0a090 100%); } }

/* Scene: hopkins-perplexed */
.scn-hopkins-perplexed { background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%), radial-gradient(ellipse at 50% 60%, #c0a040 0%, transparent 70%); }
.scn-hopkins-perplexed .desk { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-top: 3px solid #5a4a3a; box-shadow: inset 0 10px 30px rgba(0,0,0,0.7); }
.scn-hopkins-perplexed .lamp { position: absolute; top: 5%; left: 50%; width: 14%; height: 30%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #e0b060 0%, #a08040 60%, transparent 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 10px rgba(224,176,96,0.5); animation: hp3-lamp 0.8s ease-in-out infinite alternate; }
.scn-hopkins-perplexed .paper-a { position: absolute; bottom: 28%; left: 25%; width: 20%; height: 14%; background: linear-gradient(180deg, #f0e8d0 0%, #d8c8b0 100%); border-radius: 2%; box-shadow: 1px 1px 4px rgba(0,0,0,0.3); transform: rotate(-8deg); animation: hp3-paper-a 5s ease-in-out infinite; }
.scn-hopkins-perplexed .paper-b { position: absolute; bottom: 26%; left: 40%; width: 22%; height: 16%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 2%; box-shadow: 2px 2px 6px rgba(0,0,0,0.3); transform: rotate(12deg); animation: hp3-paper-b 7s ease-in-out infinite; }
.scn-hopkins-perplexed .magnifying-glass { position: absolute; bottom: 30%; left: 52%; width: 12%; height: 18%; background: radial-gradient(circle at 50% 40%, rgba(200,180,160,0.3) 0%, transparent 70%); border: 2px solid #6a5a4a; border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,0.4); animation: hp3-glass 4s ease-in-out infinite; }
.scn-hopkins-perplexed .hands { position: absolute; bottom: 18%; left: 35%; width: 18%; height: 12%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform: rotate(-5deg); animation: hp3-hands 3s ease-in-out infinite alternate; }
.scn-hopkins-perplexed .coffee-cup { position: absolute; bottom: 22%; right: 28%; width: 8%; height: 10%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 8% 8%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-hopkins-perplexed .coffee-cup::after { content: ''; position: absolute; top: -20%; left: 50%; width: 60%; height: 30%; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(255,255,255,0.3) 0%, transparent 100%); border-radius: 50%; animation: hp3-steam 4s linear infinite; } /* pseudo-element for steam, valid */
.scn-hopkins-perplexed .shadow { position: absolute; bottom: 5%; left: 20%; width: 60%; height: 8%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); animation: hp3-shadow 1.5s ease-in-out infinite alternate; }
@keyframes hp3-lamp { 0% { box-shadow: 0 0 30px 6px rgba(224,176,96,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 50px 14px rgba(224,176,96,0.7); opacity: 1; } 100% { box-shadow: 0 0 35px 8px rgba(224,176,96,0.5); opacity: 0.85; } }
@keyframes hp3-paper-a { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-11deg) translateY(2px); } }
@keyframes hp3-paper-b { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(9deg) translateY(1px); } }
@keyframes hp3-glass { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(15deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(0.95); } }
@keyframes hp3-hands { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(2px) rotate(-8deg); } }
@keyframes hp3-steam { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-10px) scale(1.6); opacity: 0.2; } 100% { transform: translateY(-20px) scale(0.5); opacity: 0; } }
@keyframes hp3-shadow { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(0.95); opacity: 0.5; } 100% { transform: scale(1.05); opacity: 0.8; } }

/* Scene: hopkins-narrates */
.scn-hopkins-narrates { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%), radial-gradient(ellipse at 50% 70%, #e0c080 0%, transparent 60%); }
.scn-hopkins-narrates .bookshelf { position: absolute; top: 5%; left: 5%; width: 18%; height: 75%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2%; box-shadow: inset -4px 0 10px rgba(0,0,0,0.5); }
.scn-hopkins-narrates .bookshelf::after { content: ''; position: absolute; top: 10%; left: 10%; width: 80%; height: 80%; background: repeating-linear-gradient(180deg, transparent 0%, transparent 8%, #2a1a0a 8%, #2a1a0a 9%); } /* simulate shelves */
.scn-hopkins-narrates .fireplace { position: absolute; bottom: 20%; right: 15%; width: 30%; height: 50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); }
.scn-hopkins-narrates .fire { position: absolute; bottom: 30%; right: 22%; width: 16%; height: 20%; background: radial-gradient(ellipse at 50% 100%, #e08040 0%, #b06030 40%, transparent 70%); border-radius: 50% 50% 10% 10%; animation: hn4-fire 10s ease-in-out infinite alternate; }
.scn-hopkins-narrates .armchair-left { position: absolute; bottom: 10%; left: 28%; width: 18%; height: 30%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; transform: scaleX(-1); box-shadow: 0 4px 12px rgba(0,0,0,0.4); }
.scn-hopkins-narrates .armchair-right { position: absolute; bottom: 10%; right: 50%; width: 18%; height: 30%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); }
.scn-hopkins-narrates .figure-left { position: absolute; bottom: 12%; left: 30%; width: 12%; height: 22%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hn4-figure-left 7s ease-in-out infinite alternate; }
.scn-hopkins-narrates .figure-right { position: absolute; bottom: 12%; right: 52%; width: 12%; height: 22%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hn4-figure-right 8s ease-in-out infinite alternate; }
.scn-hopkins-narrates .rug { position: absolute; bottom: 2%; left: 20%; width: 60%; height: 6%; background: radial-gradient(ellipse, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: hn4-rug 12s ease-in-out infinite alternate; }
@keyframes hn4-fire { 0% { transform: scaleY(1) translateY(0); opacity: 0.7; } 50% { transform: scaleY(1.1) translateY(-2px); opacity: 0.9; } 100% { transform: scaleY(0.95) translateY(1px); opacity: 0.75; } }
@keyframes hn4-figure-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes hn4-figure-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(2px) rotate(1deg); } }
@keyframes hn4-rug { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.9; transform: scale(0.98); } }

.scn-holmes-agrees-to-look {
  background: linear-gradient(135deg, #f5e6c8 0%, #e0c295 50%, #c8a87c 100%), radial-gradient(ellipse at 20% 50%, #fff8e7 0%, transparent 60%);
}
.scn-holmes-agrees-to-look .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d5b0 0%, #d4bf9a 100%); z-index: 0;
}
.scn-holmes-agrees-to-look .window {
  position: absolute; inset: 10% 5% 40% 5%; background: linear-gradient(180deg, #ffe4b5 0%, #fff0d0 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,200,100,0.3); z-index: 1;
}
.scn-holmes-agrees-to-look .desk {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 20%; background: linear-gradient(180deg, #8b5a2b 0%, #6b3a1b 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); z-index: 2; animation: sh1-desk 12s ease-in-out infinite;
}
.scn-holmes-agrees-to-look .chair {
  position: absolute; bottom: 32%; left: 60%; width: 25%; height: 30%; background: linear-gradient(180deg, #5c3a1e 0%, #3a2212 100%); border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%; z-index: 1; animation: sh1-chair 8s ease-in-out infinite;
}
.scn-holmes-agrees-to-look .holmes {
  position: absolute; bottom: 25%; left: 65%; width: 12%; height: 50%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 3; animation: sh1-holmes 5s ease-in-out infinite;
}
.scn-holmes-agrees-to-look .coat {
  position: absolute; bottom: 25%; left: 66%; width: 10%; height: 20%; background: linear-gradient(180deg, #2c2c3e 0%, #1a1a2e 100%); border-radius: 20% 20% 40% 40%; transform-origin: top; z-index: 4; animation: sh1-coat 5s ease-in-out infinite;
}
.scn-holmes-agrees-to-look .papers {
  position: absolute; bottom: 38%; left: 30%; width: 15%; height: 8%; background: linear-gradient(180deg, #faf0e0 0%, #e8dcc0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); z-index: 3; animation: sh1-papers 3s ease-in-out infinite;
}
.scn-holmes-agrees-to-look .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.15) 100%); z-index: 0;
}
@keyframes sh1-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sh1-chair { 0% { transform: rotateZ(0deg); } 50% { transform: rotateZ(-1deg); } 100% { transform: rotateZ(0deg); } }
@keyframes sh1-holmes { 0% { transform: translateY(0) rotateZ(0deg); } 25% { transform: translateY(-2px) rotateZ(1deg); } 50% { transform: translateY(-4px) rotateZ(2deg); } 75% { transform: translateY(-2px) rotateZ(1deg); } 100% { transform: translateY(0) rotateZ(0deg); } }
@keyframes sh1-coat { 0% { transform: translateX(0) rotateZ(0deg); } 25% { transform: translateX(-5px) rotateZ(-5deg); } 50% { transform: translateX(-10px) rotateZ(-10deg); } 75% { transform: translateX(-5px) rotateZ(-5deg); } 100% { transform: translateX(0) rotateZ(0deg); } }
@keyframes sh1-papers { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(1); } }

.scn-daulat-ras-visit {
  background: linear-gradient(135deg, #e8d5b0 0%, #d4bf9a 50%, #c0a882 100%), radial-gradient(ellipse at 80% 30%, #fff8e7 0%, transparent 70%);
}
.scn-daulat-ras-visit .wall {
  position: absolute; inset:0; background: linear-gradient(180deg, #f0e2c8 0%, #dcc9a8 100%); z-index:0;
}
.scn-daulat-ras-visit .door {
  position: absolute; bottom:20%; right:10%; width:20%; height:60%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.4); z-index:1; animation: sh2-door 10s ease-in-out infinite;
}
.scn-daulat-ras-visit .figure {
  position: absolute; bottom:20%; left:40%; width:12%; height:45%; background: linear-gradient(180deg, #2a2a3e 0%, #151522 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index:2; animation: sh2-figure 6s ease-in-out infinite;
}
.scn-daulat-ras-visit .turban {
  position: absolute; bottom:60%; left:41%; width:10%; height:10%; background: linear-gradient(180deg, #d4a574 0%, #b88a5c 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; z-index:3; animation: sh2-turban 6s ease-in-out infinite;
}
.scn-daulat-ras-visit .rug {
  position: absolute; bottom:10%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #8b5a2b 0%, #6b3a1b 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; z-index:1; animation: sh2-rug 7s ease-in-out infinite alternate;
}
.scn-daulat-ras-visit .lamp {
  position: absolute; bottom:30%; left:70%; width:10px; height:15px; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 15px 5px rgba(255,200,100,0.5); z-index:4; animation: sh2-lamp 3s ease-in-out infinite alternate;
}
.scn-daulat-ras-visit .shadow {
  position: absolute; bottom:18%; left:38%; width:20%; height:4%; background: rgba(0,0,0,0.2); border-radius: 50%; z-index:0; animation: sh2-shadow 6s ease-in-out infinite;
}
@keyframes sh2-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes sh2-figure { 0% { transform: translateX(0) translateY(0) rotateZ(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotateZ(1deg); } 50% { transform: translateX(10px) translateY(-4px) rotateZ(2deg); } 75% { transform: translateX(5px) translateY(-2px) rotateZ(1deg); } 100% { transform: translateX(0) translateY(0) rotateZ(0deg); } }
@keyframes sh2-turban { 0% { transform: translateY(0) rotateZ(0deg); } 50% { transform: translateY(-3px) rotateZ(5deg); } 100% { transform: translateY(0) rotateZ(0deg); } }
@keyframes sh2-rug { 0% { transform: rotateZ(-2deg) scaleX(1); } 50% { transform: rotateZ(2deg) scaleX(1.02); } 100% { transform: rotateZ(-2deg) scaleX(1); } }
@keyframes sh2-lamp { 0% { opacity: 0.8; box-shadow: 0 0 10px 3px rgba(255,200,100,0.3); } 50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(255,200,100,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 10px 3px rgba(255,200,100,0.3); } }
@keyframes sh2-shadow { 0% { transform: scaleX(1); opacity: 0.2; } 50% { transform: scaleX(0.8); opacity: 0.4; } 100% { transform: scaleX(1); opacity: 0.2; } }

.scn-bannister-location {
  background: linear-gradient(135deg, #dcc9a8 0%, #c8b08c 50%, #b09870 100%), radial-gradient(ellipse at 50% 60%, #fff0d0 0%, transparent 70%);
}
.scn-bannister-location .wall {
  position: absolute; inset:0; background: linear-gradient(180deg, #e8d5b0 0%, #d4bf9a 100%); z-index:0;
}
.scn-bannister-location .chair {
  position: absolute; bottom:20%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #5c3a1e 0%, #3a2212 100%); border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%; z-index:1; animation: sh3-chair 12s ease-in-out infinite;
}
.scn-bannister-location .figure {
  position: absolute; bottom:25%; left:40%; width:18%; height:45%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index:2; animation: sh3-figure 6s ease-in-out infinite;
}
.scn-bannister-location .table {
  position: absolute; bottom:30%; left:20%; width:40%; height:15%; background: linear-gradient(180deg, #8b5a2b 0%, #6b3a1b 100%); border-radius: 8px; z-index:1; animation: sh3-table 10s ease-in-out infinite;
}
.scn-bannister-location .papers {
  position: absolute; bottom:38%; left:25%; width:15%; height:6%; background: linear-gradient(180deg, #faf0e0 0%, #e8dcc0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); z-index:2; animation: sh3-papers 5s ease-in-out infinite alternate;
}
.scn-bannister-location .lamp {
  position: absolute; bottom:45%; left:60%; width:8px; height:12px; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,200,100,0.4); z-index:3; animation: sh3-lamp 4s ease-in-out infinite alternate;
}
.scn-bannister-location .shadow {
  position: absolute; bottom:18%; left:35%; width:30%; height:5%; background: rgba(0,0,0,0.3); border-radius: 50%; z-index:0; animation: sh3-shadow 8s ease-in-out infinite;
}
@keyframes sh3-chair { 0% { transform: rotateZ(0deg); } 50% { transform: rotateZ(-2deg); } 100% { transform: rotateZ(0deg); } }
@keyframes sh3-figure { 0% { transform: translateY(0) rotateZ(0deg); } 25% { transform: translateY(2px) rotateZ(2deg); } 50% { transform: translateY(4px) rotateZ(4deg); } 75% { transform: translateY(2px) rotateZ(2deg); } 100% { transform: translateY(0) rotateZ(0deg); } }
@keyframes sh3-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sh3-papers { 0% { transform: translateX(0) rotateZ(0deg); } 50% { transform: translateX(1.5px) rotateZ(2.5deg); } 100% { transform: translateX(3px) rotateZ(5deg); } }
@keyframes sh3-lamp { 0% { opacity: 0.7; box-shadow: 0 0 15px 5px rgba(255,200,100,0.3); } 50% { opacity: 0.85; box-shadow: 0 0 20px 8px rgba(255,200,100,0.5); } 100% { opacity: 1; box-shadow: 0 0 25px 10px rgba(255,200,100,0.6); } }
@keyframes sh3-shadow { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(0.9) scaleY(1.1); } 100% { transform: scaleX(1) scaleY(1); } }

.scn-holmes-enigmatic-smile {
  background: linear-gradient(135deg, #f5e6c8 0%, #e0c295 50%, #c8a87c 100%), radial-gradient(ellipse at 30% 40%, #fff8e7 0%, transparent 70%);
}
.scn-holmes-enigmatic-smile .wall {
  position: absolute; inset:0; background: linear-gradient(180deg, #e8d5b0 0%, #d4bf9a 100%); z-index:0;
}
.scn-holmes-enigmatic-smile .window {
  position: absolute; inset:10% 10% 30% 10%; background: linear-gradient(180deg, #ffe4b5 0%, #fff0d0 100%); border-radius: 8px; box-shadow: inset 0 0 30px rgba(255,200,100,0.3); z-index:1; animation: sh4-window 15s ease-in-out infinite alternate;
}
.scn-holmes-enigmatic-smile .lattice {
  position: absolute; inset:10% 10% 30% 10%; background: repeating-linear-gradient(0deg, transparent, transparent 10%, #a08060 10%, #a08060 11%), repeating-linear-gradient(90deg, transparent, transparent 10%, #a08060 10%, #a08060 11%); z-index:2; opacity:0.5; animation: sh4-lattice 20s linear infinite;
}
.scn-holmes-enigmatic-smile .figure {
  position: absolute; bottom:20%; right:25%; width:15%; height:60%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; z-index:3; animation: sh4-figure 8s ease-in-out infinite;
}
.scn-holmes-enigmatic-smile .smile {
  position: absolute; bottom:30%; right:27%; width:8%; height:4%; background: transparent; border-bottom: 3px solid #e0c295; border-radius: 0 0 50% 50%; z-index:4; animation: sh4-smile 4s ease-in-out infinite alternate;
}
.scn-holmes-enigmatic-smile .shadow {
  position: absolute; bottom:0; left:0; width:100%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.2) 100%); z-index:0;
}
.scn-holmes-enigmatic-smile .glow {
  position: absolute; top:20%; left:20%; width:30%; height:30%; background: radial-gradient(circle, rgba(255,220,150,0.4) 0%, transparent 70%); z-index:1; animation: sh4-glow 6s ease-in-out infinite alternate;
}
@keyframes sh4-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sh4-lattice { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes sh4-figure { 0% { transform: translateY(0) rotateZ(0deg); } 25% { transform: translateY(-2px) rotateZ(1deg); } 50% { transform: translateY(-4px) rotateZ(-1deg); } 75% { transform: translateY(-2px) rotateZ(1deg); } 100% { transform: translateY(0) rotateZ(0deg); } }
@keyframes sh4-smile { 0% { transform: scaleX(0.8) rotateZ(-2deg); } 50% { transform: scaleX(1.0) rotateZ(0deg); } 100% { transform: scaleX(1.2) rotateZ(2deg); } }
@keyframes sh4-glow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.6; } }

/* college-courtyard */
.scn-college-courtyard {
  background: linear-gradient(180deg, #8b9ba8 0%, #6b7b88 40%, #4a5a6a 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a3a 0%, transparent 60%);
}
.scn-college-courtyard .sky {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, #9aabba 0%, #7a8a9a 100%);
  animation: cco-sky 15s ease-in-out infinite alternate;
  opacity: 0.7;
}
.scn-college-courtyard .building {
  position: absolute;
  bottom: 30%;
  left: 20%;
  right: 20%;
  height: 50%;
  background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-college-courtyard .door {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 20%;
  height: 30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: cco-door-shadow 8s ease-in-out infinite;
}
.scn-college-courtyard .window {
  position: absolute;
  bottom: 45%;
  left: 40%;
  width: 15%;
  height: 20%;
  background: radial-gradient(circle at 50% 60%, #c0d0e0 0%, #80a0b0 100%);
  border: 2px solid #4a5a5a;
  border-radius: 3px;
  animation: cco-window-glow 6s ease-in-out infinite alternate;
}
.scn-college-courtyard .steps {
  position: absolute;
  bottom: 0;
  left: 30%;
  right: 30%;
  height: 30%;
  background: repeating-linear-gradient(0deg, #5a6a5a 0px, #5a6a5a 10px, #4a5a4a 10px, #4a5a4a 20px);
  animation: cco-steps-fade 12s ease-in-out infinite;
}
.scn-college-courtyard .figure {
  position: absolute;
  bottom: 5%;
  left: 45%;
  width: 8%;
  height: 20%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cco-walk 4s linear infinite;
}
.scn-college-courtyard .lantern {
  position: absolute;
  bottom: 50%;
  left: 48%;
  width: 3%;
  height: 4%;
  background: radial-gradient(circle, #f0c060 0%, #d0a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240,192,96,0.5);
  animation: cco-lantern-swing 5s ease-in-out infinite alternate;
}
.scn-college-courtyard .cloud-a {
  position: absolute;
  top: 10%;
  left: -20%;
  width: 40%;
  height: 8%;
  background: linear-gradient(180deg, rgba(240,245,250,0.6) 0%, rgba(200,210,220,0.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cco-drift-a 40s linear infinite;
}
.scn-college-courtyard .cloud-b {
  position: absolute;
  top: 20%;
  left: 10%;
  width: 30%;
  height: 6%;
  background: linear-gradient(180deg, rgba(240,245,250,0.5) 0%, rgba(200,210,220,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cco-drift-b 50s linear infinite reverse;
}
@keyframes cco-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes cco-door-shadow {
  0% { box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
  50% { box-shadow: inset 0 8px 12px rgba(0,0,0,0.7); }
  100% { box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
}
@keyframes cco-window-glow {
  0% { opacity: 0.7; box-shadow: 0 0 10px 2px rgba(192,208,224,0.3); }
  50% { opacity: 1; box-shadow: 0 0 20px 6px rgba(192,208,224,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 12px 3px rgba(192,208,224,0.4); }
}
@keyframes cco-steps-fade {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cco-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(10%) rotate(2deg); }
  50% { transform: translateX(20%) rotate(-2deg); }
  75% { transform: translateX(30%) rotate(2deg); }
  100% { transform: translateX(40%) rotate(0deg); }
}
@keyframes cco-lantern-swing {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes cco-drift-a {
  0% { transform: translateX(0); }
  50% { transform: translateX(50vw); }
  100% { transform: translateX(120vw); }
}
@keyframes cco-drift-b {
  0% { transform: translateX(0); }
  50% { transform: translateX(-30vw); }
  100% { transform: translateX(-100vw); }
}

/* window-examined */
.scn-window-examined {
  background: linear-gradient(180deg, #2a3a5a 0%, #4a5a7a 40%, #6a5a4a 100%),
              radial-gradient(ellipse at 50% 100%, #8a7a6a 0%, transparent 60%);
}
.scn-window-examined .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #3a4a6a 100%);
  animation: wex-sky 20s ease-in-out infinite;
}
.scn-window-examined .wall {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 60%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
}
.scn-window-examined .window {
  position: absolute;
  top: 20%;
  left: 25%;
  width: 50%;
  height: 50%;
  background: linear-gradient(180deg, #7a8a9a 0%, #4a5a6a 100%);
  border: 6px solid #3a2a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: wex-window-breathe 10s ease-in-out infinite;
}
.scn-window-examined .pane {
  position: absolute;
  top: 22%;
  left: 27%;
  width: 46%;
  height: 46%;
  background: linear-gradient(135deg, rgba(200,210,220,0.4) 0%, rgba(100,120,140,0.1) 50%, rgba(200,210,220,0.2) 100%);
  background-size: 200% 200%;
  border-radius: 2px;
  animation: wex-pane-shift 8s ease-in-out infinite;
}
.scn-window-examined .door {
  position: absolute;
  bottom: 0;
  left: 5%;
  width: 15%;
  height: 60%;
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 50%, #5a4a3a 100%);
  border-radius: 0 4px 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-window-examined .figure {
  position: absolute;
  bottom: 10%;
  left: 45%;
  width: 10%;
  height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 50% 50% / 60% 80% 40% 40%;
  transform-origin: bottom center;
  animation: wex-lean 6s ease-in-out infinite alternate;
}
.scn-window-examined .lantern {
  position: absolute;
  top: 35%;
  left: 55%;
  width: 4%;
  height: 6%;
  background: radial-gradient(circle, #f0c060 0%, #d0a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(240,192,96,0.5);
  animation: wex-glow 4s ease-in-out infinite alternate;
}
@keyframes wex-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes wex-window-breathe {
  0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
  50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.5); }
  100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
}
@keyframes wex-pane-shift {
  0% { background-position: 0% 0%; }
  50% { background-position: 100% 100%; }
  100% { background-position: 0% 0%; }
}
@keyframes wex-lean {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5%) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes wex-glow {
  0% { opacity: 0.8; box-shadow: 0 0 20px 8px rgba(240,192,96,0.4); }
  50% { opacity: 1; box-shadow: 0 0 40px 16px rgba(240,192,96,0.7); }
  100% { opacity: 0.9; box-shadow: 0 0 25px 10px rgba(240,192,96,0.5); }
}

/* carpet-examined */
.scn-carpet-examined {
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a4a 0%, transparent 60%);
}
.scn-carpet-examined .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  opacity: 0.8;
}
.scn-carpet-examined .carpet {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 30%;
  background: repeating-linear-gradient(45deg, #4a3a3a 0px, #4a3a3a 5px, #5a4a4a 5px, #5a4a4a 10px);
  animation: cex-carpet 20s ease-in-out infinite;
}
.scn-carpet-examined .chair {
  position: absolute;
  bottom: 10%;
  left: 40%;
  width: 20%;
  height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.5);
  animation: cex-chair 12s ease-in-out infinite;
}
.scn-carpet-examined .table {
  position: absolute;
  bottom: 10%;
  left: 65%;
  width: 15%;
  height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 5px;
  box-shadow: 1px 1px 6px rgba(0,0,0,0.4);
  animation: cex-table 8s ease-in-out infinite;
}
.scn-carpet-examined .window {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 30%;
  height: 40%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border: 4px solid #2a2a2a;
  border-radius: 3px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: cex-window-glow 10s ease-in-out infinite alternate;
}
.scn-carpet-examined .lamp {
  position: absolute;
  bottom: 35%;
  left: 70%;
  width: 5%;
  height: 10%;
  background: radial-gradient(circle at 50% 80%, #f0e080 0%, #c0a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(240,224,128,0.4);
  animation: cex-lamp 4s ease-in-out infinite alternate;
}
.scn-carpet-examined .figure {
  position: absolute;
  bottom: 10%;
  left: 40%;
  width: 15%;
  height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cex-figure 8s ease-in-out infinite;
}
.scn-carpet-examined .shadow {
  position: absolute;
  bottom: 0;
  left: 55%;
  width: 30%;
  height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: cex-shadow 6s ease-in-out infinite;
}
@keyframes cex-carpet {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cex-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cex-table {
  0% { transform: scale(1); }
  50% { transform: scale(0.98); }
  100% { transform: scale(1); }
}
@keyframes cex-window-glow {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
  50% { opacity: 0.9; box-shadow: inset 0 0 40px rgba(0,0,0,0.5); }
  100% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
}
@keyframes cex-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 20px 8px rgba(240,224,128,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 16px rgba(240,224,128,0.6); }
  100% { opacity: 0.9; box-shadow: 0 0 30px 12px rgba(240,224,128,0.4); }
}
@keyframes cex-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2%) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cex-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.3; transform: scaleX(1); }
}

/* table-reconstruction */
.scn-table-reconstruction {
  background: linear-gradient(180deg, #e0e0e0 0%, #c0c0c0 50%, #a0a0a0 100%),
              radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
}
.scn-table-reconstruction .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(0deg, #8a7a6a 0%, #b0a090 100%);
  animation: tre-floor 20s ease-in-out infinite;
}
.scn-table-reconstruction .table-center {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 30%;
  height: 15%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 3px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: tre-table 15s ease-in-out infinite;
}
.scn-table-reconstruction .table-window {
  position: absolute;
  bottom: 40%;
  right: 10%;
  width: 20%;
  height: 10%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 3px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: tre-table 15s ease-in-out infinite;
}
.scn-table-reconstruction .papers-center {
  position: absolute;
  bottom: 22%;
  left: 28%;
  width: 15%;
  height: 5%;
  background: linear-gradient(180deg, #f0f0e0 0%, #e0d0c0 100%);
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: tre-papers 10s ease-in-out infinite;
}
.scn-table-reconstruction .papers-window {
  position: absolute;
  bottom: 42%;
  right: 12%;
  width: 15%;
  height: 5%;
  background: linear-gradient(180deg, #f0f0e0 0%, #e0d0c0 100%);
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: tre-papers 10s ease-in-out infinite;
}
.scn-table-reconstruction .window {
  position: absolute;
  top: 10%;
  right: 5%;
  width: 25%;
  height: 40%;
  background: linear-gradient(180deg, #e0f0ff 0%, #c0d8e8 100%);
  border: 4px solid #809090;
  border-radius: 3px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
  animation: tre-window 12s ease-in-out infinite;
}
.scn-table-reconstruction .figure {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 10%;
  height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tre-figure 6s ease-in-out infinite alternate;
}
.scn-table-reconstruction .lamp {
  position: absolute;
  top: 20%;
  left: 10%;
  width: 5%;
  height: 8%;
  background: radial-gradient(circle, #f0e080 0%, #d0a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px rgba(240,224,128,0.3);
  animation: tre-lamp 5s ease-in-out infinite;
}
@keyframes tre-floor {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes tre-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tre-papers {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes tre-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(0,0,0,0.2); }
  100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); }
}
@keyframes tre-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5%) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tre-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 30px 12px rgba(240,224,128,0.2); }
  50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(240,224,128,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 40px 16px rgba(240,224,128,0.3); }
}

.scn-doctor-s-journey {
  background: linear-gradient(180deg, #1c1816 0%, #2a231e 30%, #3c322a 60%, #2a231e 100%),
              radial-gradient(ellipse at 30% 80%, #4a3e35 0%, transparent 70%);
  overflow: hidden;
}
.scn-doctor-s-journey .wall-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.35) 0%, transparent 50%, rgba(0,0,0,0.2) 100%);
  animation: dj-shadow 18s ease-in-out infinite alternate;
}
.scn-doctor-s-journey .lamp-glow {
  position: absolute; bottom: 40%; left: 28%;
  width: 120px; height: 130px;
  background: radial-gradient(ellipse at 50% 60%, rgba(200, 160, 100, 0.45) 0%, rgba(160, 120, 70, 0.15) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dj-lamp 4s ease-in-out infinite alternate;
}
.scn-doctor-s-journey .desk {
  position: absolute; bottom: 8%; left: 10%; right: 10%;
  height: 18%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2e221c 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 15px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(2deg);
}
.scn-doctor-s-journey .books {
  position: absolute; bottom: 25%; left: 15%;
  width: 40%; height: 22%;
  background: repeating-linear-gradient(
    90deg,
    #3a2e1e 0px, #3a2e1e 12px,
    #4a3a2a 12px, #4a3a2a 14px,
    #2e2218 14px, #2e2218 26px,
    #3a2a1a 26px, #3a2a1a 28px,
    #4a3a2a 28px, #4a3a2a 40px,
    #2e2218 40px, #2e2218 42px,
    #3a2e1e 42px, #3a2e1e 52px,
    #4a3a2a 52px, #4a3a2a 54px
  );
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: dj-books 12s ease-in-out infinite alternate;
}
.scn-doctor-s-journey .chair {
  position: absolute; bottom: 8%; left: 40%; right: 15%;
  height: 35%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1612 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: -6px 0 20px rgba(0,0,0,0.4);
  transform: perspective(500px) rotateY(4deg);
}
.scn-doctor-s-journey .figure-sit {
  position: absolute; bottom: 8%; left: 48%;
  width: 22px; height: 40px;
  background: linear-gradient(180deg, #1e1a16 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: dj-figure 6s ease-in-out infinite alternate;
}
.scn-doctor-s-journey .coffee-cup {
  position: absolute; bottom: 16%; left: 36%;
  width: 14px; height: 12px;
  background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, #3a2e22 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: dj-cup 4s ease-in-out infinite alternate;
}
.scn-doctor-s-journey .dust-motes {
  position: absolute; top: 10%; left: 20%;
  width: 60%; height: 60%;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,150,0.04) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(200,180,150,0.03) 0%, transparent 40%),
              radial-gradient(circle at 50% 30%, rgba(200,180,150,0.02) 0%, transparent 60%);
  filter: blur(2px);
  animation: dj-dust 20s linear infinite;
}

@keyframes dj-shadow { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes dj-lamp { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.02); } 100% { opacity: 0.75; transform: scale(0.98); } }
@keyframes dj-books { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes dj-figure { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.01) translateX(2px); } 100% { transform: scaleY(0.99) translateX(0); } }
@keyframes dj-cup { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dj-dust { 0% { transform: translate(0, 0); } 25% { transform: translate(8px, -4px); } 75% { transform: translate(-6px, 2px); } 100% { transform: translate(0, 0); } }

.scn-Watson-offers-to-follow {
  background: linear-gradient(180deg, #e8dcc8 0%, #f0e6d4 20%, #f5ece0 40%, #ede2ce 60%, #d8ccb8 100%),
              radial-gradient(ellipse at 70% 20%, #fff8ec 0%, transparent 60%);
  overflow: hidden;
}
.scn-Watson-offers-to-follow .window-frame {
  position: absolute; inset: 5% 10% 15% 10%;
  border: 8px solid #4a3e32;
  background: linear-gradient(180deg, #c8d8e0 0%, #dce8f0 40%, #e8f0f5 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(200, 180, 140, 0.3);
  animation: wof-window 10s ease-in-out infinite alternate;
}
.scn-Watson-offers-to-follow .sunlight-beam {
  position: absolute; top: 5%; left: 25%;
  width: 30%; height: 70%;
  background: linear-gradient(135deg, rgba(255, 240, 180, 0.2) 0%, rgba(255, 220, 140, 0.05) 60%, transparent 100%);
  transform: skewX(-8deg);
  filter: blur(3px);
  animation: wof-beam 12s ease-in-out infinite alternate;
}
.scn-Watson-offers-to-follow .curtain-left {
  position: absolute; top: 5%; left: 10%; bottom: 15%;
  width: 12%;
  background: linear-gradient(180deg, #d4c4b0 0%, #bfae98 40%, #a8947e 100%);
  border-radius: 0 6px 6px 0;
  box-shadow: 4px 0 15px rgba(0,0,0,0.15);
  transform-origin: left center;
  animation: wof-curtain-l 14s ease-in-out infinite alternate;
}
.scn-Watson-offers-to-follow .curtain-right {
  position: absolute; top: 5%; right: 10%; bottom: 15%;
  width: 12%;
  background: linear-gradient(180deg, #d4c4b0 0%, #bfae98 40%, #a8947e 100%);
  border-radius: 6px 0 0 6px;
  box-shadow: -4px 0 15px rgba(0,0,0,0.15);
  transform-origin: right center;
  animation: wof-curtain-r 14s ease-in-out infinite alternate;
}
.scn-Watson-offers-to-follow .desk-wood {
  position: absolute; bottom: 12%; left: 15%; right: 25%;
  height: 15%;
  background: linear-gradient(180deg, #8a7a60 0%, #6a5a42 100%);
  border-radius: 3px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
  transform: perspective(300px) rotateX(2deg);
}
.scn-Watson-offers-to-follow .papers {
  position: absolute; bottom: 18%; left: 22%; right: 40%;
  height: 8%;
  background: linear-gradient(180deg, #f0e8dc 0%, #e0d8c8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
  transform: rotate(-2deg);
  animation: wof-papers 8s ease-in-out infinite alternate;
}
.scn-Watson-offers-to-follow .watson-silhouette {
  position: absolute; bottom: 12%; left: 50%;
  width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: wof-watson 6s ease-in-out infinite alternate;
}
.scn-Watson-offers-to-follow .coffee-steam {
  position: absolute; bottom: 20%; left: 38%;
  width: 8px; height: 16px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,160,0.15) 0%, transparent 70%);
  filter: blur(3px);
  animation: wof-steam 4s ease-in-out infinite alternate;
}

@keyframes wof-window { 0% { opacity: 0.9; } 50% { opacity: 0.97; } 100% { opacity: 0.93; } }
@keyframes wof-beam { 0% { opacity: 0.6; transform: skewX(-8deg) translateX(0); } 50% { opacity: 0.85; transform: skewX(-8deg) translateX(4px); } 100% { opacity: 0.65; transform: skewX(-8deg) translateX(-2px); } }
@keyframes wof-curtain-l { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes wof-curtain-r { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes wof-papers { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes wof-watson { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.01) translateX(3px); } 100% { transform: scaleY(0.99) translateX(0); } }
@keyframes wof-steam { 0% { transform: translateY(0) scaleX(1); opacity: 0.3; } 50% { transform: translateY(-6px) scaleX(1.5); opacity: 0.6; } 100% { transform: translateY(0) scaleX(1); opacity: 0.3; } }

.scn-holses-inspects-fragments {
  background: linear-gradient(180deg, #7a8a8e 0%, #8a9a9e 30%, #6a7a7e 60%, #4a5a5e 100%),
              radial-gradient(ellipse at 30% 40%, #8a9a9e 0%, transparent 60%),
              radial-gradient(ellipse at 70% 80%, #5a6a6e 0%, transparent 50%);
}
.scn-holses-inspects-fragments .overcast-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8a9a9e 0%, #9aaaae 40%, #7a8a8e 100%);
  animation: hif-sky 15s ease-in-out infinite alternate;
}
.scn-holses-inspects-fragments .distant-trees {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #4a5a4e 0%, #3a4a3e 60%, #2a3a2e 100%);
  border-radius: 60% 40% 0 0 / 90% 80% 0 0;
  clip-path: polygon(0% 100%, 0% 60%, 4% 55%, 8% 62%, 12% 50%, 16% 58%, 20% 48%, 24% 55%, 28% 45%, 32% 52%, 36% 42%, 40% 50%, 44% 40%, 48% 48%, 52% 38%, 56% 45%, 60% 35%, 64% 42%, 68% 32%, 72% 40%, 76% 30%, 80% 38%, 84% 28%, 88% 36%, 92% 26%, 96% 34%, 100% 24%, 100% 100%);
  animation: hif-trees 20s ease-in-out infinite alternate;
}
.scn-holses-inspects-fragments .ground-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 30%, #3a4a3a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-holses-inspects-fragments .holmes-figure {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,.3);
  animation: hif-holmes 6s ease-in-out infinite alternate;
}
.scn-holses-inspects-fragments .bust-fragments {
  position: absolute; bottom: 20%; left: 48%; width: 30px; height: 18px;
  background: linear-gradient(135deg, #c8b8a8 0%, #a89888 40%, #b8a898 100%);
  border-radius: 10% 40% 20% 30% / 20% 50% 30% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: hif-fragments 8s ease-in-out infinite;
}
.scn-holses-inspects-fragments .fragment-glint {
  position: absolute; bottom: 21%; left: 50%; width: 6px; height: 4px;
  background: radial-gradient(circle, #e8d8c8 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(232,216,200,.5);
  animation: hif-glint 4s ease-in-out infinite alternate;
}
.scn-holses-inspects-fragments .fog-bank {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(138,154,158,.3) 0%, rgba(138,154,158,.1) 60%, transparent 100%);
  filter: blur(8px);
  border-radius: 50%;
}
.scn-holses-inspects-fragments .fog-a {
  animation: hif-fog-a 40s linear infinite;
}
.scn-holses-inspects-fragments .fog-b {
  bottom: 10%;
  height: 40%;
  filter: blur(12px);
  background: linear-gradient(180deg, rgba(138,154,158,.2) 0%, transparent 100%);
  animation: hif-fog-b 55s linear infinite reverse;
}
@keyframes hif-sky { 0% { opacity: .85; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.03); } 100% { opacity: .8; transform: scaleY(.97); } }
@keyframes hif-trees { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.005); } 100% { transform: translateY(1px) scaleX(.995); } }
@keyframes hif-holmes { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(3px) rotate(4deg); } 70% { transform: translateX(1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hif-fragments { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hif-glint { 0% { opacity: .3; transform: scale(.8); } 50% { opacity: .9; transform: scale(1.3); } 100% { opacity: .4; transform: scale(.9); } }
@keyframes hif-fog-a { 0% { transform: translateX(-20%) scaleX(1); } 50% { transform: translateX(10%) scaleX(1.1); } 100% { transform: translateX(-20%) scaleX(1); } }
@keyframes hif-fog-b { 0% { transform: translateX(10%) scaleX(1.1); } 50% { transform: translateX(-30%) scaleX(.9); } 100% { transform: translateX(10%) scaleX(1.1); } }

.scn-professor's-appetite {
  background: linear-gradient(180deg, #e8dcc8 0%, #f0e4d0 20%, #d8ccb8 50%, #c8bca8 100%),
              radial-gradient(ellipse at 60% 20%, #f8ecd8 0%, transparent 50%),
              radial-gradient(ellipse at 30% 80%, #d8ccb8 0%, transparent 40%);
}
.scn-professor's-appetite .dining-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d8ccb8 60%, #c8bca8 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.08);
}
.scn-professor's-appetite .window-light {
  position: absolute; top: 8%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #f8f0e0 0%, #e8dcc8 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 60px rgba(255,255,240,.4), 0 0 80px rgba(248,240,224,.3);
  animation: pr-window 6s ease-in-out infinite alternate;
}
.scn-professor's-appetite .dining-table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,.2);
  transform: perspective(600px) rotateX(5deg);
}
.scn-professor's-appetite .professor-figure {
  position: absolute; bottom: 22%; left: 30%; width: 36px; height: 50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 40%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 4px 0 12px rgba(0,0,0,.15);
  animation: pr-professor 5s ease-in-out infinite;
}
.scn-professor's-appetite .plate-stack {
  position: absolute; bottom: 24%; left: 42%; width: 28px; height: 8px;
  background: linear-gradient(180deg, #f0e8e0 0%, #e0d8d0 50%, #d0c8c0 100%);
  border-radius: 50%;
  box-shadow: 0 3px 6px rgba(0,0,0,.15), inset 0 1px 2px rgba(255,255,255,.5);
}
.scn-professor's-appetite .steam-wisp {
  position: absolute; bottom: 34%; left: 44%; width: 14px; height: 20px;
  background: rgba(255,255,240,.15);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-professor's-appetite .steam-1 {
  animation: pr-steam-a 4s ease-in-out infinite;
}
.scn-professor's-appetite .steam-2 {
  left: 46%;
  width: 10px;
  height: 16px;
  animation: pr-steam-b 5s ease-in-out infinite 1.5s;
}
.scn-professor's-appetite .cutlet-dish {
  position: absolute; bottom: 24%; left: 48%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #d0b8a0 0%, #b8a088 50%, #a08870 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,.12), inset 0 2px 4px rgba(255,255,255,.2);
  animation: pr-dish 7s ease-in-out infinite;
}
@keyframes pr-window { 0% { opacity: .85; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.02) scaleY(1.01); } 100% { opacity: .9; transform: scaleX(.98) scaleY(1); } }
@keyframes pr-professor { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg) scaleY(1.02); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pr-steam-a { 0% { transform: translateY(0) translateX(0) scaleX(1); opacity: .3; } 50% { transform: translateY(-18px) translateX(4px) scaleX(1.8); opacity: .7; } 100% { transform: translateY(-4px) translateX(2px) scaleX(1); opacity: .2; } }
@keyframes pr-steam-b { 0% { transform: translateY(2px) translateX(0) scaleX(.8); opacity: .2; } 50% { transform: translateY(-16px) translateX(-3px) scaleX(1.5); opacity: .6; } 100% { transform: translateY(0) translateX(-1px) scaleX(1); opacity: .15; } }
@keyframes pr-dish { 0% { transform: translateY(0) rotate(0deg); } 35% { transform: translateY(-1px) rotate(1deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-carruthers-justification {
  background: linear-gradient(180deg, #1a1a12 0%, #2a2218 40%, #1f1a10 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-carruthers-justification .wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #2a2218 0%, #1a1a12 100%); }
.scn-carruthers-justification .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, #1a1410 0%, #2a1e14 100%); }
.scn-carruthers-justification .window { position:absolute; left:10%; top:10%; width:8%; height:60%; background: linear-gradient(180deg, #1a1a22 0%, #0a0a14 100%); border:2px solid #3a2a1a; border-radius:4px; box-shadow: inset 0 0 6px rgba(0,0,0,.6); animation: cj-window 4s ease-in-out infinite alternate; }
.scn-carruthers-justification .table { position:absolute; bottom:15%; left:30%; width:30%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius:2px; box-shadow: 0 2px 8px rgba(0,0,0,.5); }
.scn-carruthers-justification .lamp { position:absolute; bottom:27%; left:38%; width:8%; height:10%; background: radial-gradient(circle at 50% 30%, #c08040 0%, #6a3a1a 60%, #3a2a1a 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.3); animation: cj-lamp 2s ease-in-out infinite alternate; }
.scn-carruthers-justification .figure { position:absolute; bottom:15%; left:55%; width:12%; height:50%; background: linear-gradient(180deg, #0a0a08 0%, #181610 100%); border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: cj-figure 3s ease-in-out infinite; }
.scn-carruthers-justification .shadow { position:absolute; bottom:15%; left:46%; width:26%; height:6%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.6) 0%, transparent 70%); opacity:.5; animation: cj-shadow 1.5s ease-in-out infinite alternate; }
@keyframes cj-window  { 0% { opacity:.4; transform:scaleY(1) } 50% { opacity:.7; transform:scaleY(1.02) } 100% { opacity:.5; transform:scaleY(0.98) } }
@keyframes cj-lamp   { 0% { box-shadow: 0 0 18px 4px #c08040, 0 0 36px 8px rgba(192,128,64,.2); opacity:.85 } 50% { box-shadow: 0 0 32px 12px #e0a050, 0 0 64px 20px rgba(224,160,80,.4); opacity:1 } 100% { box-shadow: 0 0 22px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); opacity:.9 } }
@keyframes cj-figure { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(4px) rotate(1deg) } 50% { transform:translateX(-2px) rotate(0deg) } 75% { transform:translateX(3px) rotate(-1deg) } 100% { transform:translateX(0) rotate(2deg) } }
@keyframes cj-shadow { 0% { transform:scaleX(1); opacity:.4 } 50% { transform:scaleX(1.2); opacity:.6 } 100% { transform:scaleX(0.9); opacity:.5 } }

.scn-holmes-reconstructs {
  background: linear-gradient(180deg, #1e1812 0%, #2a221a 50%, #181410 100%),
              radial-gradient(ellipse at 50% 70%, #3a2e22 0%, transparent 60%);
}
.scn-holmes-reconstructs .bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a221a 0%, #1e1812 100%); }
.scn-holmes-reconstructs .hearth { position:absolute; bottom:20%; left:50%; width:30%; height:18%; transform:translateX(-50%); background: linear-gradient(180deg, #6a3a1a 0%, #2a1a0a 100%); border-radius:20% 20% 8% 8%; box-shadow: 0 4px 20px rgba(160,80,40,.4); animation: hr-fire 6s ease-in-out infinite alternate; }
.scn-holmes-reconstructs .chair { position:absolute; bottom:20%; left:15%; width:25%; height:45%; background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-holmes-reconstructs .holmes { position:absolute; bottom:20%; left:18%; width:16%; height:40%; background: linear-gradient(180deg, #0a0a08 0%, #181612 100%); border-radius:45% 45% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; animation: hr-breathe 4s ease-in-out infinite; }
.scn-holmes-reconstructs .smoke { position:absolute; top:10%; left:35%; width:12%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,.3) 0%, transparent 70%); filter: blur(8px); animation: hr-smoke 20s linear infinite; }
.scn-holmes-reconstructs .smoke-2 { left:40%; top:15%; width:8%; height:15%; animation-delay: -8s; animation-duration: 25s; }
@keyframes hr-fire  { 0% { box-shadow: 0 4px 20px rgba(160,80,40,.4); opacity:.8 } 50% { box-shadow: 0 8px 40px rgba(200,120,60,.6); opacity:1 } 100% { box-shadow: 0 4px 25px rgba(160,80,40,.5); opacity:.85 } }
@keyframes hr-breathe { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes hr-smoke { 0% { transform:translateX(0) translateY(0) rotate(0deg) scale(1); opacity:.6 } 50% { transform:translateX(20px) translateY(-40px) rotate(15deg) scale(1.3); opacity:.3 } 100% { transform:translateX(40px) translateY(-80px) rotate(30deg) scale(1.6); opacity:0 } }

.scn-arrival-at-woodman's-lee {
  background: linear-gradient(180deg, #4a5a5e 0%, #3b4a4f 40%, #2d3a3d 100%),
              radial-gradient(ellipse at 50% 0%, #6a7a7e 0%, transparent 70%);
}
.scn-arrival-at-woodman's-lee .overcast-sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #5a6a6e 0%, #3d4d52 60%, #2a383c 100%);
  animation: awl-sky 20s ease-in-out infinite alternate;
}
.scn-arrival-at-woodman's-lee .distant-woods {
  position:absolute; bottom:45%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3a4a4e 0%, #1a2a2e 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
  animation: awl-trees 15s ease-in-out infinite alternate;
}
.scn-arrival-at-woodman's-lee .near-woods {
  position:absolute; bottom:35%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #2e3e42 0%, #162226 100%);
  clip-path: polygon(0% 100%, 5% 40%, 15% 70%, 25% 30%, 35% 60%, 45% 20%, 55% 50%, 65% 10%, 75% 40%, 85% 25%, 95% 60%, 100% 100%);
  filter: blur(1px);
  animation: awl-trees2 12s ease-in-out infinite alternate;
}
.scn-arrival-at-woodman's-lee .station-building {
  position:absolute; bottom:30%; left:40%; width:100px; height:60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-arrival-at-woodman's-lee .station-roof {
  position:absolute; bottom:48%; left:38%; width:120px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
  animation: awl-roof 8s ease-in-out infinite;
}
.scn-arrival-at-woodman's-lee .lantern {
  position:absolute; bottom:35%; left:44%; width:8px; height:8px;
  background: radial-gradient(circle, #d6b07a 0%, #a08050 70%);
  border-radius: 50%;
  box-shadow: 0 0 14px 3px #d6b07a, 0 0 28px 6px rgba(214,176,122,0.3);
  animation: awl-flicker 3s ease-in-out infinite alternate;
}
.scn-arrival-at-woodman's-lee .alighting-figure {
  position:absolute; bottom:30%; left:35%; width:14px; height:28px;
  background: linear-gradient(180deg, #1e2a2e 0%, #0e161a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: awl-step 4s ease-in-out infinite;
}
.scn-arrival-at-woodman's-lee .carriage {
  position:absolute; bottom:30%; left:60%; width:50px; height:20px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: scaleX(0.8);
  animation: awl-roll 6s ease-in-out infinite alternate;
}
.scn-arrival-at-woodman's-lee .mist {
  position:absolute; bottom:15%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, rgba(200,210,215,0.1) 0%, rgba(200,210,215,0.2) 50%, transparent 100%);
  filter: blur(8px);
  animation: awl-drift 25s linear infinite;
}
@keyframes awl-sky { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes awl-trees { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.02); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes awl-trees2 { 0% { transform:translateX(0); } 50% { transform:translateX(-3px); } 100% { transform:translateX(0); } }
@keyframes awl-roof { 0%,100% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(0.5deg); } }
@keyframes awl-flicker { 0% { box-shadow:0 0 10px 2px #a08050; opacity:0.7; } 50% { box-shadow:0 0 18px 5px #d6b07a; opacity:1; } 100% { box-shadow:0 0 12px 3px #a08050; opacity:0.8; } }
@keyframes awl-step { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 25% { transform:translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform:translateX(6px) translateY(0) rotate(-1deg); } 75% { transform:translateX(9px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(12px) translateY(0) rotate(0deg); } }
@keyframes awl-roll { 0% { transform:scaleX(0.8) rotate(-0.5deg); } 50% { transform:scaleX(0.85) rotate(0.5deg); } 100% { transform:scaleX(0.8) rotate(-0.5deg); } }
@keyframes awl-drift { 0% { transform:translateX(0); opacity:0.3; } 100% { transform:translateX(-100px); opacity:0.6; } }

.scn-vigil {
  background: linear-gradient(180deg, #0a0e14 0%, #121a24 40%, #16202e 100%),
              radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%);
}
.scn-vigil .dark-heaven {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0a0e14 0%, #0e141c 60%, #121a24 100%);
  animation: vg-sky 30s linear infinite alternate;
}
.scn-vigil .pool-water {
  position:absolute; bottom:20%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #0a141e 0%, #162230 40%, #1a2a3c 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  box-shadow: inset 0 4px 12px rgba(0,20,40,0.5);
  animation: vg-water 8s ease-in-out infinite alternate;
}
.scn-vigil .pool-reflection {
  position:absolute; bottom:20%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, transparent 0%, rgba(160,180,200,0.15) 60%, rgba(160,180,200,0.05) 100%);
  filter: blur(4px);
  animation: vg-reflect 6s ease-in-out infinite alternate;
}
.scn-vigil .vigil-figure {
  position:absolute; bottom:35%; left:45%; width:16px; height:30px;
  background: linear-gradient(180deg, #0a0e14 0%, #050810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vg-crouch 5s ease-in-out infinite;
}
.scn-vigil .reeds {
  position:absolute; bottom:45%; left:20%; right:20%; height:10%;
  background: linear-gradient(180deg, transparent 0%, #1a2a2a 30%, #0e1a1a 70%);
  clip-path: polygon(0% 100%, 2% 40%, 5% 70%, 8% 20%, 12% 50%, 15% 10%, 20% 60%, 25% 30%, 30% 80%, 35% 15%, 40% 50%, 45% 25%, 50% 70%, 55% 10%, 60% 40%, 65% 20%, 70% 60%, 75% 5%, 80% 30%, 85% 15%, 90% 50%, 95% 20%, 100% 100%);
  filter: blur(1px);
  animation: vg-reeds 10s ease-in-out infinite alternate;
}
.scn-vigil .beast-eyes {
  position:absolute; bottom:45%; left:55%; width:6px; height:6px;
  background: radial-gradient(circle, #9ac8a0 0%, #4a7a50 70%);
  border-radius: 50%;
  box-shadow: 0 0 14px 2px #7abc80, 0 0 24px 6px rgba(122,188,128,0.3);
  animation: vg-blink 3s ease-in-out infinite;
}
.scn-vigil .moon-glow {
  position:absolute; top:15%; left:70%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(200,220,240,0.1) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: vg-moon 25s linear infinite alternate;
}
@keyframes vg-sky { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes vg-water { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.01); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes vg-reflect { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }
@keyframes vg-crouch { 0%,100% { transform:translateY(0) rotate(-1deg) scaleY(1); } 50% { transform:translateY(-2px) rotate(2deg) scaleY(1.02); } }
@keyframes vg-reeds { 0% { transform:translateX(0) skewX(0deg); } 50% { transform:translateX(-4px) skewX(1deg); } 100% { transform:translateX(0) skewX(0deg); } }
@keyframes vg-blink { 0% { opacity:0; box-shadow:0 0 0 0 transparent; } 5% { opacity:1; box-shadow:0 0 14px 2px #7abc80; } 10% { opacity:0; } 90% { opacity:0; } 95% { opacity:1; } 100% { opacity:0; } }
@keyframes vg-moon { 0% { transform:scale(0.8) rotate(0deg); opacity:0.3; } 50% { transform:scale(1.1) rotate(5deg); opacity:0.6; } 100% { transform:scale(0.8) rotate(0deg); opacity:0.3; } }

.scn-wife-s-illness { background: linear-gradient(180deg, #e8f0f5 0%, #c2d1d9 40%, #a3b5bf 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%); }
.scn-wife-s-illness .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #e8f0f5 0%, #d4e6f1 100%); }
.scn-wife-s-illness .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b0895b 0%, #8c6b45 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,0.3); }
.scn-wife-s-illness .window { position:absolute; top:10%; left:30%; width:25%; height:35%; background: radial-gradient(ellipse at center, #fff8e7 0%, #f0e6d6 80%); border: 6px solid #6b5440; border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,248,231,0.4); }
.scn-wife-s-illness .curtain-left { position:absolute; top:8%; left:28%; width:8%; height:35%; background: linear-gradient(180deg, #c6a679 0%, #a5865f 100%); border-radius:0 8px 8px 0; transform-origin: left center; animation: wi-curtain-l 5s ease-in-out infinite; }
.scn-wife-s-illness .curtain-right { position:absolute; top:8%; right:28%; width:8%; height:35%; background: linear-gradient(180deg, #c6a679 0%, #a5865f 100%); border-radius:8px 0 0 8px; transform-origin: right center; animation: wi-curtain-r 5s ease-in-out infinite 2.5s; }
.scn-wife-s-illness .bed { position:absolute; bottom:15%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #f0e6d6 0%, #d4c8b8 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.2); }
.scn-wife-s-illness .figure { position:absolute; bottom:18%; left:35%; width:12%; height:40%; background: linear-gradient(180deg, #2e2b2b 0%, #1a1818 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: wi-figure 2s ease-in-out infinite; }
.scn-wife-s-illness .lamp { position:absolute; bottom:30%; left:15%; width:4%; height:8%; background: radial-gradient(circle, #ffd27f 0%, #e6a85c 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #ffd27f; animation: wi-lamp 1.5s ease-in-out infinite; }
.scn-wife-s-illness .shadow { position:absolute; top:20%; right:20%; width:30%; height:50%; background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.05) 100%); filter: blur(10px); transform-origin: top right; animation: wi-shadow 4s ease-in-out infinite; }

@keyframes wi-curtain-l { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-4deg) scaleX(1.02); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes wi-curtain-r { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(4deg) scaleX(1.02); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes wi-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wi-lamp { 0% { opacity:0.9; box-shadow:0 0 15px 4px #ffd27f; } 50% { opacity:1; box-shadow:0 0 25px 8px #ffd27f; } 100% { opacity:0.9; box-shadow:0 0 15px 4px #ffd27f; } }
@keyframes wi-shadow { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(5px,-3px) scale(1.05); } 100% { transform: translate(0,0) scale(1); } }

.scn-carruthers-love-confession {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e04 100%),
    radial-gradient(ellipse at 30% 60%, #8a5a2a 0%, transparent 60%);
}

.scn-carruthers-love-confession .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-bottom: 2px solid #5a4a3a;
  animation: clc-flicker 8s ease-in-out infinite alternate;
}

.scn-carruthers-love-confession .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
}

.scn-carruthers-love-confession .window {
  position: absolute;
  top: 8%;
  left: 12%;
  width: 60px;
  height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #ffe080 0%, #c09840 60%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(255,224,128,0.3);
  animation: clc-window 6s ease-in-out infinite alternate;
}

.scn-carruthers-love-confession .figure {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 40px;
  height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: clc-figure 5s ease-in-out infinite;
}

.scn-carruthers-love-confession .bicycle {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 50px;
  height: 30px;
}
.scn-carruthers-love-confession .bicycle::before,
.scn-carruthers-love-confession .bicycle::after {
  content: "";
  position: absolute;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #3a2a1a;
  box-shadow: 0 0 0 3px #5a4a3a;
}
.scn-carruthers-love-confession .bicycle::before {
  bottom: 0;
  left: 0;
}
.scn-carruthers-love-confession .bicycle::after {
  bottom: 0;
  right: 0;
}
/* frame as pseudo border trick? Using extra div instead */
.scn-carruthers-love-confession .bicycle-frame {
  position: absolute;
  top: 6px;
  left: 7px;
  width: 36px;
  height: 2px;
  background: #5a4a3a;
  transform: rotate(-10deg);
  animation: clc-bike 4s ease-in-out infinite;
}

.scn-carruthers-love-confession .shadow {
  position: absolute;
  bottom: 10%;
  left: 45%;
  width: 100px;
  height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: clc-shadow 5s ease-in-out infinite;
}

.scn-carruthers-love-confession .glow {
  position: absolute;
  top: 5%;
  left: 10%;
  width: 80px;
  height: 100px;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,224,128,0.15) 0%, transparent 70%);
  animation: clc-glow 6s ease-in-out infinite alternate;
}

@keyframes clc-flicker {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes clc-window {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.05) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.98) translateY(1px); opacity: 0.9; }
}

@keyframes clc-figure {
  0% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-48%) rotate(-2deg) scaleY(1.02); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(0.98); }
  75% { transform: translateX(-52%) rotate(-1deg) scaleY(1.01); }
  100% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
}

@keyframes clc-bike {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-8deg) translateX(3px); }
  100% { transform: rotate(-12deg) translateX(-2px); }
}

@keyframes clc-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.5; }
  100% { transform: scaleX(0.95); opacity: 0.35; }
}

@keyframes clc-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

/* Scene 2: holmes-questions-carruthers */
.scn-holmes-questions-carruthers {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 40%, #050510 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 60%);
}

.scn-holmes-questions-carruthers .bg-dark {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
}

.scn-holmes-questions-carruthers .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}

.scn-holmes-questions-carruthers .table {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 80px;
  height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}

.scn-holmes-questions-carruthers .holmes {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 35px;
  height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hqc-holmes 6s ease-in-out infinite;
}

.scn-holmes-questions-carruthers .carruthers {
  position: absolute;
  bottom: 20%;
  right: 30%;
  width: 40px;
  height: 78px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hqc-carruthers 7s ease-in-out infinite;
}

.scn-holmes-questions-carruthers .lamp {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 12px;
  height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #a07030 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.5), 0 0 60px 20px rgba(255,208,128,0.2);
  animation: hqc-lamp 4s ease-in-out infinite alternate;
}

.scn-holmes-questions-carruthers .beam-left {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 100px;
  height: 4px;
  transform-origin: right center;
  background: linear-gradient(90deg, rgba(255,208,128,0.2) 0%, transparent 100%);
  transform: rotate(-20deg);
  animation: hqc-beam 6s ease-in-out infinite alternate;
}

.scn-holmes-questions-carruthers .beam-right {
  position: absolute;
  bottom: 28%;
  right: 40%;
  width: 100px;
  height: 4px;
  transform-origin: left center;
  background: linear-gradient(270deg, rgba(255,208,128,0.2) 0%, transparent 100%);
  transform: rotate(20deg);
  animation: hqc-beam 6s ease-in-out infinite alternate-reverse;
}

@keyframes hqc-holmes {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(-3deg) translateY(-2px); }
  60% { transform: rotate(2deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

@keyframes hqc-carruthers {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(4deg) translateX(-2px); }
  50% { transform: rotate(-2deg) translateX(3px); }
  75% { transform: rotate(1deg) translateX(-1px); }
  100% { transform: rotate(0deg) translateX(0); }
}

@keyframes hqc-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(255,208,128,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 15px rgba(255,208,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(255,208,128,0.45); opacity: 0.9; }
}

@keyframes hqc-beam {
  0% { opacity: 0.2; transform: rotate(-20deg) scaleY(1); }
  50% { opacity: 0.5; transform: rotate(-15deg) scaleY(1.2); }
  100% { opacity: 0.3; transform: rotate(-25deg) scaleY(0.9); }
}

/* Additional common reset for reader context – actual implementation would include these globally */
.scn-carruthers-love-confession, .scn-holmes-questions-carruthers {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-carruthers-love-confession > div, .scn-holmes-questions-carruthers > div {
  pointer-events: none;
}

.scn-doctor-s-journey {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e28 100%),
    radial-gradient(ellipse at 70% 60%, #3a3a4e 0%, transparent 70%);
}
.scn-doctor-s-journey .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%);
  opacity: 0.9;
}
.scn-doctor-s-journey .window {
  position: absolute; top: 10%; right: 8%; width: 38%; height: 50%;
  background: linear-gradient(180deg, #0b1a3a 0%, #1a2a4a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  overflow: hidden;
}
.scn-doctor-s-journey .curtain {
  position: absolute; top: 8%; right: 5%; width: 12%; height: 55%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 10% 10% / 0 0 30% 30%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  transform: skewX(-5deg);
  animation: dj-curtain 20s ease-in-out infinite;
}
.scn-doctor-s-journey .lamp {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d4a050 0%, #8a6030 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(212,160,80,0.4);
  animation: dj-lamp 4s ease-in-out infinite alternate;
}
.scn-doctor-s-journey .glow {
  position: absolute; bottom: 18%; left: 20%; width: 25%; height: 35%;
  background: radial-gradient(ellipse at 50% 0%, rgba(212,160,80,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: dj-glow 6s ease-in-out infinite alternate;
}
.scn-doctor-s-journey .figure {
  position: absolute; bottom: 10%; left: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dj-figure 5s ease-in-out infinite;
}
.scn-doctor-s-journey .desk {
  position: absolute; bottom: 8%; left: 15%; right: 40%; height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-doctor-s-journey .book {
  position: absolute; bottom: 14%; left: 22%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: dj-book 8s ease-in-out infinite;
}
.scn-doctor-s-journey .star-a {
  position: absolute; top: 18%; right: 15%; width: 4px; height: 4px;
  background: #e8d0a0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(232,208,160,0.5);
  animation: dj-star 4s ease-in-out infinite alternate;
}
.scn-doctor-s-journey .star-b {
  position: absolute; top: 28%; right: 25%; width: 3px; height: 3px;
  background: #e8d0a0;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(232,208,160,0.4);
  animation: dj-star 6s ease-in-out infinite alternate-reverse;
}

@keyframes dj-curtain {
  0% { transform: skewX(-5deg) translateX(0); }
  50% { transform: skewX(-3deg) translateX(2px); }
  100% { transform: skewX(-5deg) translateX(0); }
}
@keyframes dj-lamp {
  0% { box-shadow: 0 0 20px 8px rgba(212,160,80,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 14px rgba(212,160,80,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px rgba(212,160,80,0.4); opacity: 0.9; }
}
@keyframes dj-glow {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.5; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes dj-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dj-book {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dj-star {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}

.scn-carruthers-justification {
  background: linear-gradient(180deg, #1a1a1a 0%, #2b1e15 40%, #1c1a1a 100%),
              radial-gradient(ellipse at 50% 70%, #4a3520 0%, transparent 60%);
}

.scn-carruthers-justification .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.3) 100%);
  animation: cj-shadowpulse 6s ease-in-out infinite alternate;
}

.scn-carruthers-justification .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e10 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.7);
}

.scn-carruthers-justification .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e10 0%, #1a1208 100%);
  box-shadow: inset 0 10px 15px rgba(0,0,0,0.8);
}

.scn-carruthers-justification .table {
  position: absolute; bottom: 15%; left: 50%; width: 160px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3520 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: cj-tablecreak 12s ease-in-out infinite;
}

.scn-carruthers-justification .lamplight {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffa030 0%, #c07020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 60px 20px rgba(255,160,48,0.4), 0 0 30px 10px rgba(192,112,32,0.2);
  animation: cj-flicker 2.5s ease-in-out infinite alternate;
}

.scn-carruthers-justification .figure {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cj-figuresway 4s ease-in-out infinite;
}

.scn-carruthers-justification .telegram {
  position: absolute; bottom: 17%; left: 46%; width: 28px; height: 18px;
  background: linear-gradient(135deg, #c8b88a 0%, #a89870 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: cj-telegramslide 8s ease-in-out infinite;
}

.scn-carruthers-justification .curtain {
  position: absolute; top: 0; right: 0; width: 20%; height: 70%;
  background: linear-gradient(180deg, #2a1e10 0%, #1a1208 80%);
  border-radius: 0 0 10% 10%;
  filter: blur(2px);
  animation: cj-curtainsway 7s ease-in-out infinite;
}

@keyframes cj-shadowpulse {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

@keyframes cj-tablecreak {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-48%) rotate(0.3deg); }
  50% { transform: translateX(-50%) rotate(-0.2deg); }
  75% { transform: translateX(-52%) rotate(0.2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

@keyframes cj-flicker {
  0% { box-shadow: 0 0 50px 15px rgba(255,160,48,0.3), 0 0 25px 8px rgba(192,112,32,0.2); opacity: 0.9; }
  25% { box-shadow: 0 0 70px 25px rgba(255,160,48,0.5), 0 0 35px 12px rgba(192,112,32,0.3); opacity: 1; }
  50% { box-shadow: 0 0 40px 10px rgba(255,160,48,0.2), 0 0 20px 5px rgba(192,112,32,0.15); opacity: 0.85; }
  75% { box-shadow: 0 0 65px 20px rgba(255,160,48,0.45), 0 0 30px 10px rgba(192,112,32,0.25); opacity: 0.95; }
  100% { box-shadow: 0 0 45px 12px rgba(255,160,48,0.25), 0 0 22px 6px rgba(192,112,32,0.18); opacity: 0.9; }
}

@keyframes cj-figuresway {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(4px) rotate(2deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes cj-telegramslide {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes cj-curtainsway {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.02) translateX(-5px); }
  100% { transform: scaleX(1) translateX(0); }
}

.scn-carruthers-love-confession {
  background: 
    linear-gradient(180deg, #2a1e12 0%, #3d2b1a 40%, #5a3c22 100%),
    radial-gradient(ellipse at 50% 80%, #7a5030 0%, transparent 70%);
}

.scn-carruthers-love-confession .bg-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3520 0%, #2a1e12 100%);
  border-bottom: 4px solid #1a1208;
  animation: clc-wall 20s ease-in-out infinite alternate;
}

.scn-carruthers-love-confession .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, #1a1208 0%, #2a1e12 40%, #4a3520 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}

.scn-carruthers-love-confession .window-frame {
  position: absolute;
  top: 15%;
  left: 25%;
  width: 40%;
  height: 55%;
  background: linear-gradient(135deg, #3d2b1a 0%, #2a1e12 100%);
  border: 6px solid #1a1208;
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px #5a3c22;
  animation: clc-frame 12s ease-in-out infinite alternate;
}

.scn-carruthers-love-confession .window-glass {
  position: absolute;
  top: 18%;
  left: 28%;
  width: 34%;
  height: 49%;
  background: linear-gradient(180deg, rgba(200,160,100,0.3) 0%, rgba(150,110,60,0.1) 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(200,160,100,0.2);
  animation: clc-glass 8s ease-in-out infinite alternate;
}

.scn-carruthers-love-confession .curtain {
  position: absolute;
  top: 15%;
  width: 12%;
  height: 55%;
  background: linear-gradient(180deg, #5a3c22 0%, #3d2b1a 100%);
  border-radius: 0 0 20% 20%;
  opacity: 0.7;
  filter: blur(2px);
}

.scn-carruthers-love-confession .curtain.left {
  left: 22%;
  transform-origin: top left;
  animation: clc-curtain-left 14s ease-in-out infinite alternate;
}

.scn-carruthers-love-confession .curtain.right {
  right: 22%;
  transform-origin: top right;
  animation: clc-curtain-right 14s ease-in-out infinite alternate;
}

.scn-carruthers-love-confession .figure {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 20px;
  height: 48px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: clc-figure 6s ease-in-out infinite;
}

.scn-carruthers-love-confession .lamp {
  position: absolute;
  bottom: 35%;
  right: 20%;
  width: 24px;
  height: 36px;
  background: linear-gradient(180deg, #b08040 0%, #6a4a2a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
  animation: clc-lamp 5s ease-in-out infinite alternate;
}

.scn-carruthers-love-confession .lamp-glow {
  position: absolute;
  bottom: 33%;
  right: 17%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, rgba(255,200,100,0.5) 0%, rgba(255,200,100,0.1) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: clc-glow 3s ease-in-out infinite alternate;
}

@keyframes clc-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes clc-frame {
  0% { transform: scale(1); box-shadow: inset 0 0 0 2px #5a3c22; }
  50% { transform: scale(1.01); box-shadow: inset 0 0 4px 2px #7a5030; }
  100% { transform: scale(1); box-shadow: inset 0 0 0 2px #5a3c22; }
}

@keyframes clc-glass {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(200,160,100,0.2); }
  50% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(200,160,100,0.4); }
  100% { opacity: 0.5; box-shadow: inset 0 0 15px rgba(200,160,100,0.1); }
}

@keyframes clc-curtain-left {
  0% { transform: translateX(0) skewY(0deg); }
  50% { transform: translateX(2px) skewY(1deg); }
  100% { transform: translateX(0) skewY(0deg); }
}

@keyframes clc-curtain-right {
  0% { transform: translateX(0) skewY(0deg); }
  50% { transform: translateX(-2px) skewY(-1deg); }
  100% { transform: translateX(0) skewY(0deg); }
}

@keyframes clc-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(1px) translateY(-1px) rotate(0.5deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-1px) translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

@keyframes clc-lamp {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

@keyframes clc-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1) translate(2px, -2px); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

.scn-holmes-reconstructs {
  background:
    linear-gradient(180deg, #2a221c 0%, #17120d 50%, #0f0b08 100%),
    radial-gradient(ellipse at 30% 60%, rgba(180, 130, 70, 0.15) 0%, transparent 60%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-holmes-reconstructs .room-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 35% 50%, #3a3028 0%, transparent 50%);
  animation: hr-room 20s ease-in-out infinite alternate;
}
.scn-holmes-reconstructs .window {
  position: absolute;
  top: 12%;
  left: 6%;
  width: 80px;
  height: 110px;
  background: linear-gradient(180deg, #1a1e2a 0%, #0f121a 100%);
  border: 3px solid #2a221c;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.6), 0 0 4px rgba(0,0,0,0.4);
  animation: hr-window 15s ease-in-out infinite alternate;
}
.scn-holmes-reconstructs .desk {
  position: absolute;
  bottom: 8%;
  left: 20%;
  right: 20%;
  height: 24%;
  background: linear-gradient(180deg, #3a2a1c 0%, #2a1a0e 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-holmes-reconstructs .chair {
  position: absolute;
  bottom: 20%;
  left: 22%;
  width: 36px;
  height: 50px;
  background: linear-gradient(180deg, #1f1812 0%, #0f0b08 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: hr-chair 10s ease-in-out infinite;
}
.scn-holmes-reconstructs .figure {
  position: absolute;
  bottom: 24%;
  left: 28%;
  width: 28px;
  height: 65px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hr-figure 12s ease-in-out infinite;
}
.scn-holmes-reconstructs .lamp {
  position: absolute;
  bottom: 42%;
  left: 45%;
  width: 16px;
  height: 20px;
  background: radial-gradient(circle at 50% 30%, #e8c080 0%, #b89050 60%, transparent 80%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200, 150, 60, 0.3), 0 0 60px 20px rgba(200, 150, 60, 0.1);
  animation: hr-lamp 4s ease-in-out infinite alternate;
}
.scn-holmes-reconstructs .paper {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 35px;
  height: 25px;
  background: linear-gradient(135deg, #d4c8b0 0%, #bcae94 100%);
  border-radius: 1px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform-origin: center bottom;
  animation: hr-paper 16s ease-in-out infinite;
}

@keyframes hr-room {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 0.95; transform: scale(1.01); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes hr-window {
  0% { box-shadow: inset 0 0 12px rgba(0,0,0,0.6), 0 0 4px rgba(0,0,0,0.4); }
  50% { box-shadow: inset 0 0 18px rgba(0,0,0,0.7), 0 0 6px rgba(0,0,0,0.5); }
  100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.5), 0 0 3px rgba(0,0,0,0.3); }
}
@keyframes hr-chair {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes hr-figure {
  0% { transform: translateY(0) rotate(0); }
  33% { transform: translateY(-2px) rotate(0.5deg); }
  66% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hr-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(200,150,60,0.25), 0 0 40px 12px rgba(200,150,60,0.08); }
  50% { opacity: 1; box-shadow: 0 0 35px 12px rgba(200,150,60,0.4), 0 0 65px 20px rgba(200,150,60,0.15); }
  100% { opacity: 0.85; box-shadow: 0 0 25px 8px rgba(200,150,60,0.3), 0 0 50px 16px rgba(200,150,60,0.1); }
}
@keyframes hr-paper {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-1px) rotate(2deg); }
  60% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}

.scn-holmes-questions-carruthers {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #1e120a 35%, #140b06 70%, #0a0502 100%),
    radial-gradient(ellipse at 30% 40%, #4a2a0e 0%, transparent 60%);
}
.scn-holmes-questions-carruthers .bg-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #2a1a0e 0%, #20120a 50%, #1a0e06 100%);
  opacity: 0.7;
  animation: hc-wall-pulse 6s ease-in-out infinite alternate;
}
.scn-holmes-questions-carruthers .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 22%;
  background: linear-gradient(180deg, #36261a 0%, #1e140e 50%, #0f0a06 100%);
  border-top: 2px solid #4a3420;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-holmes-questions-carruthers .lamp {
  position: absolute;
  bottom: 26%;
  left: 20%;
  width: 20px;
  height: 50px;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4030 50%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
  transform-origin: bottom center;
  animation: hc-lamp-sway 4s ease-in-out infinite;
}
.scn-holmes-questions-carruthers .lamp::before {
  content: '';
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  width: 28px;
  height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, #8a5020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255, 208, 128, 0.5), 0 0 40px 16px rgba(255, 180, 80, 0.3);
  animation: hc-lamp-glow 2s ease-in-out infinite alternate;
}
.scn-holmes-questions-carruthers .desk {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 55%;
  height: 8%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  transform: perspective(400px) rotateX(2deg);
}
.scn-holmes-questions-carruthers .figure-left {
  position: absolute;
  bottom: 24%;
  left: 42%;
  width: 30px;
  height: 48px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-figure-left 3s ease-in-out infinite;
}
.scn-holmes-questions-carruthers .figure-left::after {
  content: '';
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  width: 18px;
  height: 18px;
  background: #0a0502;
  border-radius: 50%;
}
.scn-holmes-questions-carruthers .figure-right {
  position: absolute;
  bottom: 24%;
  right: 35%;
  width: 28px;
  height: 52px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: hc-figure-right 3.5s ease-in-out infinite;
}
.scn-holmes-questions-carruthers .figure-right::after {
  content: '';
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  width: 16px;
  height: 20px;
  background: #0a0502;
  border-radius: 50%;
}
.scn-holmes-questions-carruthers .window {
  position: absolute;
  top: 12%;
  right: 12%;
  width: 50px;
  height: 60px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1820 100%);
  border: 3px solid #3a2a1a;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5), 0 0 4px rgba(0,0,0,0.3);
  animation: hc-window-fade 8s ease-in-out infinite alternate;
}
.scn-holmes-questions-carruthers .window::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 2px;
  background: #2a1a0e;
}
.scn-holmes-questions-carruthers .window::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #2a1a0e;
}
@keyframes hc-wall-pulse {
  0% { opacity: 0.65; }
  50% { opacity: 0.75; }
  100% { opacity: 0.6; }
}
@keyframes hc-lamp-sway {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-0.5deg); }
}
@keyframes hc-lamp-glow {
  0% { box-shadow: 0 0 16px 6px rgba(255, 208, 128, 0.4), 0 0 32px 12px rgba(255, 180, 80, 0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 24px 10px rgba(255, 208, 128, 0.6), 0 0 48px 20px rgba(255, 180, 80, 0.35); opacity: 1; }
  100% { box-shadow: 0 0 18px 7px rgba(255, 208, 128, 0.45), 0 0 36px 14px rgba(255, 180, 80, 0.25); opacity: 0.85; }
}
@keyframes hc-figure-left {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-0.5deg); }
  100% { transform: translateY(-0.5px) rotate(0.5deg); }
}
@keyframes hc-figure-right {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hc-window-fade {
  0% { background: linear-gradient(180deg, #1a2a3a 0%, #0e1820 100%); box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
  50% { background: linear-gradient(180deg, #1a2a3a 0%, #0e1820 100%); box-shadow: inset 0 0 14px rgba(0,0,0,0.6), 0 0 6px rgba(255,255,255,0.05); }
  100% { background: linear-gradient(180deg, #1a2a3a 0%, #0e1820 100%); box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
}

.scn-professors-appetite {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #fff8e0 30%, #e8d6a0 70%),
    radial-gradient(ellipse at 30% 30%, rgba(255, 255, 200, 0.35) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}

.scn-professors-appetite .window {
  position: absolute;
  top: 11%;
  left: 8%;
  width: 38%;
  height: 45%;
  background: linear-gradient(180deg, #fffce8 0%, #fffce8 60%, #f0e4b8 100%);
  border: 4px solid #b0906a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255, 255, 200, 0.6), 0 0 50px rgba(255, 255, 200, 0.2);
  animation: pa-window-glow 3s ease-in-out infinite alternate;
}

.scn-professors-appetite .curtain-left,
.scn-professors-appetite .curtain-right {
  position: absolute;
  top: 11%;
  width: 12%;
  height: 50%;
  background: linear-gradient(180deg, #c9aa7a 0%, #b8936a 100%);
  border-radius: 0 40% 40% 0 / 0 20% 20% 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.15);
  animation: pa-curtain-sway 4s ease-in-out infinite alternate;
}
.scn-professors-appetite .curtain-left {
  left: 6%;
  transform-origin: top right;
}
.scn-professors-appetite .curtain-right {
  right: 54%;
  transform-origin: top left;
  border-radius: 40% 0 0 40% / 20% 0 0 20%;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.15);
  animation-delay: -2s;
}

.scn-professors-appetite .table {
  position: absolute;
  bottom: 8%;
  left: 10%;
  width: 70%;
  height: 12%;
  background: linear-gradient(180deg, #8b6f4a 0%, #6e543a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}

.scn-professors-appetite .plate {
  position: absolute;
  bottom: 16%;
  left: 32%;
  width: 18%;
  height: 10%;
  background: radial-gradient(ellipse at 50% 40%, #ffffff 0%, #f2e4c8 60%, #d4c4a8 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2), inset 0 0 10px rgba(255,255,240,0.6);
  animation: pa-plate-shimmer 8s ease-in-out infinite alternate;
}

.scn-professors-appetite .cutlets {
  position: absolute;
  bottom: 18%;
  left: 36%;
  width: 10%;
  height: 6%;
  background: radial-gradient(ellipse at 50% 30%, #a9724a 0%, #7a4f2a 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

.scn-professors-appetite .figure {
  position: absolute;
  bottom: 8%;
  left: 50%;
  width: 14%;
  height: 34%;
  background: linear-gradient(90deg, #3a322a 0%, #2a221a 50%, #1a140e 100%);
  border-radius: 60% 40% 30% 30% / 80% 70% 50% 50%;
  transform-origin: bottom center;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.4);
  animation: pa-figure-breathe 5s ease-in-out infinite alternate;
}
/* Profile shape: left silhouette, head rounded right side */
.scn-professors-appetite .figure::before {
  content: '';
  position: absolute;
  top: 4%;
  left: 20%;
  width: 50%;
  height: 50%;
  background: #1a140e;
  border-radius: 50% 20% 20% 50% / 50% 30% 40% 60%;
}

.scn-professors-appetite .shadow {
  position: absolute;
  bottom: 7%;
  left: 45%;
  width: 28%;
  height: 2%;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(4px);
}

@keyframes pa-window-glow {
  0%   { box-shadow: inset 0 0 30px rgba(255, 255, 200, 0.5), 0 0 40px rgba(255, 255, 200, 0.15); opacity: 0.8; }
  50%  { box-shadow: inset 0 0 60px rgba(255, 255, 200, 0.8), 0 0 70px rgba(255, 255, 200, 0.3); opacity: 1; }
  100% { box-shadow: inset 0 0 40px rgba(255, 255, 200, 0.6), 0 0 50px rgba(255, 255, 200, 0.2); opacity: 0.9; }
}

@keyframes pa-curtain-sway {
  0%   { transform: rotate(-3deg); }
  50%  { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}

@keyframes pa-figure-breathe {
  0%   { transform: scaleY(1); }
  50%  { transform: scaleY(1.02) translateY(-1%); }
  100% { transform: scaleY(0.98) translateY(0.5%); }
}

@keyframes pa-plate-shimmer {
  0%   { box-shadow: 0 2px 6px rgba(0,0,0,0.2), inset 0 0 8px rgba(255,255,240,0.4); }
  50%  { box-shadow: 0 2px 10px rgba(0,0,0,0.25), inset 0 0 20px rgba(255,255,240,0.8); }
  100% { box-shadow: 0 2px 6px rgba(0,0,0,0.2), inset 0 0 12px rgba(255,255,240,0.5); }
}

.scn-vigil {
  background: linear-gradient(180deg, #0a0c1a 0%, #12142c 50%, #1a1c3a 100%), radial-gradient(ellipse at 50% 20%, #2a2d5a 0%, transparent 70%);
}
.scn-vigil .bg-vault {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0d0f1f 0%, #161836 50%, #0a0c1a 100%); animation: vi-vault 20s ease-in-out infinite alternate;
}
.scn-vigil .moon-haze {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 120px; background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.02) 40%, transparent 60%); border-radius: 50%; transform: translateX(-50%); filter: blur(20px); animation: vi-haze 15s ease-in-out infinite alternate;
}
.scn-vigil .pool-surface {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%; background: linear-gradient(180deg, rgba(20,30,60,0.4) 0%, rgba(10,15,30,0.8) 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); animation: vi-pool 8s ease-in-out infinite alternate;
}
.scn-vigil .hunter-silhouette {
  position: absolute; bottom: 20%; right: 10%; width: 40px; height: 50px; background: linear-gradient(180deg, #0a0b12 0%, #050610 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vi-hunter 4s ease-in-out infinite;
}
.scn-vigil .beast-eyes {
  position: absolute; bottom: 30%; left: 15%; width: 20px; height: 10px; background: radial-gradient(circle, #f0e68c 0%, #b8860b 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(240,230,140,0.6), 0 0 40px 10px rgba(184,134,11,0.3); animation: vi-eyes 3s ease-in-out infinite alternate;
}
.scn-vigil .reed {
  position: absolute; bottom: 10%; width: 6px; height: 80px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius: 50%; transform-origin: bottom center;
}
.scn-vigil .left-reed {
  left: 20%; animation: vi-reed-sway 5s ease-in-out infinite;
}
.scn-vigil .right-reed {
  right: 25%; height: 60px; animation: vi-reed-sway 4s ease-in-out infinite reverse;
}
.scn-vigil .water-reflect {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 6px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent); animation: vi-reflect 10s linear infinite;
}
@keyframes vi-vault {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes vi-haze {
  0% { transform: translateX(-50%) translateY(-10px) scale(1); opacity: 0.5; }
  50% { transform: translateX(-50%) translateY(10px) scale(1.1); opacity: 0.7; }
  100% { transform: translateX(-50%) translateY(-5px) scale(0.9); opacity: 0.4; }
}
@keyframes vi-pool {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes vi-hunter {
  0% { transform: rotate(0deg) translateY(0); }
  33% { transform: rotate(1deg) translateY(-1px); }
  66% { transform: rotate(-1deg) translateY(0); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes vi-eyes {
  0% { box-shadow: 0 0 10px 2px rgba(240,230,140,0.5), 0 0 20px 5px rgba(184,134,11,0.2); transform: scale(1); opacity: 0.8; }
  50% { box-shadow: 0 0 25px 8px rgba(240,230,140,0.8), 0 0 50px 15px rgba(184,134,11,0.4); transform: scale(1.2); opacity: 1; }
  100% { box-shadow: 0 0 15px 4px rgba(240,230,140,0.6), 0 0 30px 8px rgba(184,134,11,0.3); transform: scale(0.9); opacity: 0.7; }
}
@keyframes vi-reed-sway {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes vi-reflect {
  0% { transform: translateX(-10px) scaleX(0.8); opacity: 0.3; }
  50% { transform: translateX(10px) scaleX(1.2); opacity: 0.6; }
  100% { transform: translateX(-5px) scaleX(0.9); opacity: 0.4; }
}

.scn-wife-s-illness { background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 40%, #8a9aaa 100%), radial-gradient(ellipse at 80% 30%, #fff8e7 0%, transparent 60%); }
.scn-wife-s-illness .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); border-radius: 2% 2% 0 0; }
.scn-wife-s-illness .window { position:absolute; top:10%; right:15%; width:80px; height:120px; background: linear-gradient(180deg, #fff8e7 0%, #ffffcc 100%); border:3px solid #5a4a3a; border-radius:4px; box-shadow:0 0 40px 20px rgba(255,248,231,0.6); animation:wi-window 4s ease-in-out infinite alternate; }
.scn-wife-s-illness .bed { position:absolute; bottom:20%; left:10%; width:150px; height:60px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a8 100%); border-radius:8px; box-shadow:0 4px 8px rgba(0,0,0,0.3); animation:wi-bed 5s ease-in-out infinite; }
.scn-wife-s-illness .figure { position:absolute; bottom:22%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:wi-figure 6s ease-in-out infinite; }
.scn-wife-s-illness .lamp { position:absolute; bottom:30%; left:80%; width:10px; height:14px; background: radial-gradient(circle, #ffae42, #cc5500); border-radius:50%; box-shadow:0 0 20px 8px rgba(255,174,66,0.8); animation:wi-lamp 1.5s ease-in-out infinite alternate; }
.scn-wife-s-illness .curtain { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:0 20% 20% 0; transform:translateX(-20px); animation:wi-curtain 8s ease-in-out infinite alternate; }
@keyframes wi-window { 0% { box-shadow:0 0 30px 15px rgba(255,248,231,0.5); opacity:0.9; } 50% { box-shadow:0 0 60px 30px rgba(255,248,231,0.9); opacity:1; } 100% { box-shadow:0 0 40px 20px rgba(255,248,231,0.6); opacity:0.85; } }
@keyframes wi-bed { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-1px) scale(1.01); } 100% { transform:translateY(0) scale(1); } }
@keyframes wi-figure { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(2px) rotate(1deg); } 70% { transform:translateX(-1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes wi-lamp { 0% { opacity:0.7; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.8; transform:scale(0.95); } }
@keyframes wi-curtain { 0% { transform:translateX(-20px); } 50% { transform:translateX(-10px); } 100% { transform:translateX(-20px); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.cutlet { position: absolute; pointer-events: none; }
.fragment { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.star { position: absolute; pointer-events: none; }
.tall { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-park-lane-mystery {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #1a1a2e 100%), radial-gradient(ellipse at 60% 30%, #3a2a5a 0%, transparent 70%);
}
.scn-park-lane-mystery .wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-park-lane-mystery .lamp { position:absolute; top:20%; left:40%; width:12px; height:30px; background: #3a3a5a; border-radius:4px; transform:rotate(-15deg); box-shadow: 0 0 20px 6px #4a4a6a; animation: plm-lamp 4s ease-in-out infinite alternate; }
.scn-park-lane-mystery .desk { position:absolute; bottom:20%; left:30%; width:120px; height:40px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-park-lane-mystery .chair { position:absolute; bottom:20%; left:60%; width:50px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:10% 10% 40% 40% / 20% 20% 60% 60%; transform-origin: bottom center; animation: plm-chair 6s ease-in-out infinite; }
.scn-park-lane-mystery .figure { position:absolute; bottom:22%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: plm-figure 3s ease-in-out infinite alternate; }
.scn-park-lane-mystery .papers { position:absolute; bottom:22%; left:32%; width:30px; height:4px; background: #8a7a5a; border-radius:2px; box-shadow: 0 2px 0 #6a5a3a; animation: plm-papers 8s ease-in-out infinite; }
.scn-park-lane-mystery .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); }
@keyframes plm-lamp { 0% { opacity:.7; transform:rotate(-15deg) scaleY(1) } 50% { opacity:1; transform:rotate(-12deg) scaleY(1.05) } 100% { opacity:.8; transform:rotate(-18deg) scaleY(.95) } }
@keyframes plm-chair { 0% { transform:rotate(0deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes plm-figure { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes plm-papers { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.5 } }

.scn-watson-reminisces {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #4a2a1a 100%), radial-gradient(ellipse at 50% 80%, #6a4a3a 0%, transparent 70%);
}
.scn-watson-reminisces .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-watson-reminisces .fireplace { position:absolute; bottom:5%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); }
.scn-watson-reminisces .fire { position:absolute; bottom:10%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: radial-gradient(circle at 50% 100%, #ff8030 0%, #ff6020 40%, #c04010 80%, transparent 100%); border-radius:50% 50% 20% 20%; animation: wr-fire 2s ease-in-out infinite alternate; }
.scn-watson-reminisces .armchair { position:absolute; bottom:10%; left:25%; width:70px; height:60px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:20% 20% 40% 40% / 30% 30% 50% 50%; transform-origin: bottom center; animation: wr-armchair 8s ease-in-out infinite; }
.scn-watson-reminisces .watson-figure { position:absolute; bottom:12%; left:28%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-watson 6s ease-in-out infinite alternate; }
.scn-watson-reminisces .bookcase { position:absolute; top:10%; right:10%; width:40px; height:80px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-watson-reminisces .candle { position:absolute; top:15%; left:15%; width:6px; height:20px; background: #7a6a5a; border-radius:2px; box-shadow: 0 0 12px 3px #ffd080; animation: wr-candle 3s ease-in-out infinite alternate; }
@keyframes wr-fire { 0% { transform:translateX(-50%) scaleY(1) scaleX(1); opacity:.8 } 50% { transform:translateX(-50%) scaleY(1.15) scaleX(1.05); opacity:1 } 100% { transform:translateX(-50%) scaleY(.95) scaleX(1); opacity:.9 } }
@keyframes wr-armchair { 0% { transform:rotate(0deg) } 50% { transform:rotate(1deg) } 100% { transform:rotate(-1deg) } }
@keyframes wr-watson { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-1px) rotate(2deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes wr-candle { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.1) } 100% { opacity:.8; transform:scaleY(.95) } }

.scn-watson-studies-crime {
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%), radial-gradient(ellipse at 30% 40%, #3a4a3a 0%, transparent 70%);
}
.scn-watson-studies-crime .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); }
.scn-watson-studies-crime .desk { position:absolute; bottom:15%; left:30%; width:140px; height:30px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-watson-studies-crime .lamp { position:absolute; bottom:40%; left:35%; width:10px; height:25px; background: #4a3a2a; border-radius:2px; box-shadow: 0 0 15px 5px #8a7a5a; animation: wsc-lamp 4s ease-in-out infinite alternate; }
.scn-watson-studies-crime .chair { position:absolute; bottom:15%; left:55%; width:45px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 40% 40% / 20% 20% 60% 60%; transform-origin: bottom center; animation: wsc-chair 10s ease-in-out infinite; }
.scn-watson-studies-crime .papers { position:absolute; bottom:18%; left:32%; width:40px; height:3px; background: #8a7a5a; border-radius:2px; box-shadow: 0 3px 0 #6a5a3a; animation: wsc-papers 5s ease-in-out infinite; }
.scn-watson-studies-crime .magnifier { position:absolute; bottom:22%; left:38%; width:12px; height:12px; background: radial-gradient(circle, #c0c0c0 0%, #808080 60%); border-radius:50%; box-shadow: 0 0 4px #a0a0a0; animation: wsc-magnifier 7s ease-in-out infinite alternate; }
.scn-watson-studies-crime .pipe { position:absolute; bottom:20%; left:50%; width:20px; height:4px; background: #3a2a1a; border-radius:2px; transform:rotate(20deg); }
.scn-watson-studies-crime .books { position:absolute; top:10%; right:10%; width:30px; height:70px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:3px; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
@keyframes wsc-lamp { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.1) } 100% { opacity:.8; transform:scaleY(.95) } }
@keyframes wsc-chair { 0% { transform:rotate(0deg) } 50% { transform:rotate(1.5deg) } 100% { transform:rotate(-1deg) } }
@keyframes wsc-papers { 0% { opacity:.5 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes wsc-magnifier { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(4px) rotate(10deg) } 100% { transform:translateX(0) rotate(-5deg) } }

.scn-inquest-evidence {
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 50%, #000010 100%), radial-gradient(ellipse at 50% 60%, #2a2a3e 0%, transparent 80%);
}
.scn-inquest-evidence .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); }
.scn-inquest-evidence .table { position:absolute; bottom:20%; left:30%; width:160px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%); border-radius:4px; box-shadow: 0 8px 16px rgba(0,0,0,.8); }
.scn-inquest-evidence .candle { position:absolute; bottom:38%; left:45%; width:8px; height:24px; background: #5a4a3a; border-radius:3px; box-shadow: 0 0 18px 6px #ffa040; animation: ie-candle 2.5s ease-in-out infinite alternate; }
.scn-inquest-evidence .document { position:absolute; bottom:25%; left:35%; width:50px; height:6px; background: #8a7a5a; border-radius:2px; box-shadow: 0 2px 0 #6a5a3a; animation: ie-document 12s ease-in-out infinite; }
.scn-inquest-evidence .hand { position:absolute; bottom:25%; left:55%; width:15px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ie-hand 4s ease-in-out infinite alternate; }
.scn-inquest-evidence .judge-silhouette { position:absolute; top:10%; left:50%; width:60px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%); border-radius:30% 30% 40% 40% / 50% 50% 60% 60%; box-shadow: 0 0 20px rgba(0,0,0,.8); }
.scn-inquest-evidence .gavel { position:absolute; bottom:22%; left:50%; width:6px; height:6px; background: #3a2a1a; border-radius:2px; box-shadow: 0 0 4px #1a0a00; animation: ie-gavel 3s ease-in-out infinite; }
@keyframes ie-candle { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.15) } 100% { opacity:.8; transform:scaleY(.95) } }
@keyframes ie-document { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes ie-hand { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(3deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes ie-gavel { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(5deg) } 100% { transform:translateY(0) rotate(-3deg) } }

/* Scene: holmes-revealed */
.scn-holmes-revealed {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #cfb48a 30%, #a8896b 100%),
    radial-gradient(ellipse at 30% 80%, #fff8e0 0%, transparent 60%);
}
.scn-holmes-revealed .wall-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #dcc9a5, #bda27e 80%);
}
.scn-holmes-revealed .window-glow {
  position: absolute; top: 10%; left: 5%; width: 140px; height: 180px;
  background: linear-gradient(180deg, #fffce8, #fff5c0 60%, transparent);
  border-radius: 4px 4px 0 0; box-shadow: 0 0 50px 20px rgba(255,245,200,0.4);
  animation: hrev-light 4s ease-in-out infinite alternate;
}
.scn-holmes-revealed .curtain {
  position: absolute; top: 10%; left: 5%; width: 140px; height: 180px;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  opacity: 0.6; animation: hrev-sway 6s ease-in-out infinite;
}
.scn-holmes-revealed .sofa {
  position: absolute; bottom: 20%; left: 25%; width: 200px; height: 80px;
  background: linear-gradient(180deg, #6a4f3a, #4a3525);
  border-radius: 20px 20px 10px 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-holmes-revealed .holmes-fig {
  position: absolute; bottom: 22%; left: 20%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrev-holmes 1s ease-in-out infinite alternate;
}
.scn-holmes-revealed .watson-fig {
  position: absolute; bottom: 20%; left: 45%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrev-watson 0.8s ease-in-out infinite;
}
.scn-holmes-revealed .top-hat {
  position: absolute; bottom: 35%; left: 15%; width: 40px; height: 30px;
  background: #1a1a2a; border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: hrev-hat 2s ease-in-out infinite;
}
.scn-holmes-revealed .gas-lamp {
  position: absolute; top: 12%; right: 15%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffe680 0%, #b08030 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 8px rgba(255,230,128,0.5);
  animation: hrev-lamp 3s ease-in-out infinite alternate;
}
@keyframes hrev-light { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes hrev-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes hrev-holmes { 0% { transform: translateX(0) rotate(-2deg); } 100% { transform: translateX(4px) rotate(2deg); } }
@keyframes hrev-watson { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(-3px) rotate(-5deg) scale(0.95); } 50% { transform: translateX(2px) rotate(3deg) scale(1.05); } 75% { transform: translateX(-1px) rotate(-2deg) scale(0.98); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes hrev-hat { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(10deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes hrev-lamp { 0% { box-shadow: 0 0 20px 4px rgba(255,230,128,0.3); } 50% { box-shadow: 0 0 40px 12px rgba(255,230,128,0.7); } 100% { box-shadow: 0 0 25px 6px rgba(255,230,128,0.4); } }

/* Scene: holmes-narrative-reichenbach */
.scn-holmes-narrative-reichenbach {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a6a 0%, transparent 70%);
}
.scn-holmes-narrative-reichenbach .abyss-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a2a, #1a1a3e 60%, transparent);
  animation: hnr-sky 10s ease-in-out infinite alternate;
}
.scn-holmes-narrative-reichenbach .cliff-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 50%;
  background: linear-gradient(90deg, #0a0a1a 0%, #2a2a3a 40%, #0a0a1a 100%);
  clip-path: polygon(0 20%, 20% 0, 40% 30%, 60% 0, 80% 20%, 100% 5%, 100% 100%, 0 100%);
}
.scn-holmes-narrative-reichenbach .waterfall {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 60%;
  background: linear-gradient(180deg, #8a9aa8 0%, #c0d0e0 50%, #6a8a9a 100%);
  border-radius: 0 0 20px 20px; opacity: 0.4;
  animation: hnr-water 2s linear infinite;
}
.scn-holmes-narrative-reichenbach .ledge {
  position: absolute; bottom: 35%; left: 10%; right: 50%; height: 8px;
  background: #3a3a4a; border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
}
.scn-holmes-narrative-reichenbach .holmes-grip {
  position: absolute; bottom: 40%; left: 22%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #2a2a3e, #1a1a2e);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hnr-fight 1.2s ease-in-out infinite alternate;
}
.scn-holmes-narrative-reichenbach .moriarty-fall {
  position: absolute; bottom: 38%; left: 30%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #1a1a2e, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 70% 100%;
  animation: hnr-fall 1.5s ease-in infinite;
}
.scn-holmes-narrative-reichenbach .stone-a {
  position: absolute; top: 20%; left: 10%; width: 16px; height: 16px;
  background: #4a4a5a; border-radius: 50%;
  animation: hnr-stones 3s linear infinite;
}
.scn-holmes-narrative-reichenbach .stone-b {
  position: absolute; top: 15%; left: 50%; width: 14px; height: 14px;
  background: #4a4a5a; border-radius: 50%;
  animation: hnr-stones 4s linear infinite 1s;
}
.scn-holmes-narrative-reichenbach .spray-mist {
  position: absolute; bottom: 10%; left: 30%; right: 20%; height: 40px;
  background: linear-gradient(90deg, transparent, rgba(200,220,240,0.15), transparent);
  filter: blur(8px);
  animation: hnr-mist 5s ease-in-out infinite alternate;
}
@keyframes hnr-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes hnr-water { 0% { transform: translateY(0); } 100% { transform: translateY(20px); } }
@keyframes hnr-fight { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(8px) rotate(5deg); } 100% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes hnr-fall { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(-20deg) translateX(-10px); } 60% { transform: rotate(-45deg) translateX(-20px) scale(0.9); } 100% { transform: rotate(-70deg) translateX(-40px) scale(0.7); opacity:0.3; } }
@keyframes hnr-stones { 0% { transform: translateY(-20px) rotate(0deg); opacity:1; } 100% { transform: translateY(80vh) rotate(360deg); opacity:0; } }
@keyframes hnr-mist { 0% { transform: translateX(-10px) scaleX(1); } 100% { transform: translateX(10px) scaleX(1.2); } }

/* Scene: holmes-return-baker-street */
.scn-holmes-return-baker-street {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 30% 20%, #6a4a2a 0%, transparent 70%);
}
.scn-holmes-return-baker-street .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3525, #2a1a0a 80%);
}
.scn-holmes-return-baker-street .fireplace-glow {
  position: absolute; bottom: 20%; left: 5%; width: 120px; height: 140px;
  background: radial-gradient(ellipse at 50% 60%, #ff8c40 0%, #b05020 40%, transparent 70%);
  border-radius: 30px 30px 0 0;
  box-shadow: 0 0 60px 30px rgba(255,140,64,0.4);
  animation: hbr-fire 2s ease-in-out infinite alternate;
}
.scn-holmes-return-baker-street .window-sash {
  position: absolute; top: 8%; right: 8%; width: 160px; height: 200px;
  background: linear-gradient(180deg, #0a1a2a, #1a2a3a 60%, #0a1a2a);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: hbr-night 12s ease-in-out infinite alternate;
}
.scn-holmes-return-baker-street .wax-dummy {
  position: absolute; top: 18%; right: 14%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #8a7a6a, #6a5a4a);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: hbr-dummy 8s ease-in-out infinite;
}
.scn-holmes-return-baker-street .holmes-stand {
  position: absolute; bottom: 22%; left: 25%; width: 28px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hbr-stand 4s ease-in-out infinite alternate;
}
.scn-holmes-return-baker-street .watson-seat {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbr-seat 3s ease-in-out infinite;
}
.scn-holmes-return-baker-street .bookshelf {
  position: absolute; top: 12%; left: 2%; width: 100px; height: 160px;
  background: #3a2a1a; border-radius: 4px;
  box-shadow: inset 0 0 0 2px #5a3a2a;
  animation: hbr-shelf 15s linear infinite;
}
.scn-holmes-return-baker-street .armchair {
  position: absolute; bottom: 16%; left: 45%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a, #3a2010);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
@keyframes hbr-fire { 0% { opacity:0.6; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes hbr-night { 0% { background-color: #0a1a2a; } 50% { background-color: #1a2a3a; } 100% { background-color: #0a1a2a; } }
@keyframes hbr-dummy { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(0.5deg) translateY(-1px); } 100% { transform: rotate(-0.5deg) translateY(0); } }
@keyframes hbr-stand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes hbr-seat { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(5px) translateY(-3px) rotate(2deg); } 60% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hbr-shelf { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* adair-engagement: calm, dim interior */
.scn-adair-engagement {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a1e 50%, #1e1410 100%), 
              radial-gradient(ellipse at 50% 80%, #4a3428 0%, transparent 60%);
}
.scn-adair-engagement .bg-wall {
  position: absolute; inset: 0 0 35% 0; 
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1e1a 100%);
  animation: en-wall 12s ease-in-out infinite alternate;
}
.scn-adair-engagement .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3428 0%, #2a1e1a 100%);
  border-radius: 20% 20% 0 0;
  animation: en-floor 15s ease-in-out infinite alternate;
}
.scn-adair-engagement .window {
  position: absolute; top: 15%; left: 55%; width: 30%; height: 45%;
  background: linear-gradient(180deg, rgba(180,160,140,0.3) 0%, rgba(120,100,80,0.2) 100%);
  border: 2px solid #4a3428; border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px rgba(180,160,140,0.1);
  animation: en-window 20s ease-in-out infinite alternate;
}
.scn-adair-engagement .curtain {
  position: absolute; top: 12%; left: 52%; width: 36%; height: 50%;
  background: linear-gradient(90deg, #5a4234 0%, #6a5244 30%, #5a4234 70%, #4a3224 100%);
  border-radius: 0 0 10% 10%;
  filter: blur(1px);
  animation: en-curtain 8s ease-in-out infinite alternate;
}
.scn-adair-engagement .desk {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: en-desk 10s ease-in-out infinite alternate;
}
.scn-adair-engagement .figure {
  position: absolute; bottom: 30%; left: 40%; width: 14%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, #1a1410 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: en-figure 6s ease-in-out infinite;
}
.scn-adair-engagement .lamp {
  position: absolute; bottom: 40%; left: 35%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 50% 80%, #c8a86a 0%, #8a7048 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,168,106,0.3);
  animation: en-lamp 4s ease-in-out infinite alternate;
}
.scn-adair-engagement .glow {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse, rgba(200,168,106,0.15) 0%, transparent 70%);
  animation: en-glow 7s ease-in-out infinite alternate;
}
@keyframes en-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes en-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes en-window { 0% { background: rgba(180,160,140,0.2); } 50% { background: rgba(180,160,140,0.35); } 100% { background: rgba(180,160,140,0.2); } }
@keyframes en-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(2px); } }
@keyframes en-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes en-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes en-lamp { 0% { box-shadow: 0 0 20px 5px rgba(200,168,106,0.2); } 50% { box-shadow: 0 0 40px 15px rgba(200,168,106,0.4); } 100% { box-shadow: 0 0 25px 8px rgba(200,168,106,0.25); } }
@keyframes en-glow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* adair-card-clubs: calm, dim interior – card table */
.scn-adair-card-clubs {
  background: linear-gradient(180deg, #201810 0%, #2a2018 40%, #1a1410 100%), 
              radial-gradient(ellipse at 50% 60%, #3a2820 0%, transparent 70%);
}
.scn-adair-card-clubs .table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(180deg, #3a2810 0%, #2a1c08 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.6);
}
.scn-adair-card-clubs .card {
  position: absolute; bottom: 35%; width: 8%; height: 16%;
  background: linear-gradient(135deg, #f8f0e0 0%, #e8dcc8 100%);
  border-radius: 3px;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.4);
}
.scn-adair-card-clubs .card-1 { left: 30%; transform: rotate(-5deg); animation: cc-card1 10s ease-in-out infinite; }
.scn-adair-card-clubs .card-2 { left: 40%; transform: rotate(2deg); animation: cc-card2 12s ease-in-out infinite; }
.scn-adair-card-clubs .card-3 { left: 50%; transform: rotate(-1deg); animation: cc-card3 8s ease-in-out infinite; }
.scn-adair-card-clubs .card-4 { left: 60%; transform: rotate(4deg); animation: cc-card4 14s ease-in-out infinite; }
.scn-adair-card-clubs .hand {
  position: absolute; bottom: 25%; left: 20%; width: 12%; height: 20%;
  background: radial-gradient(ellipse at 50% 40%, #c8b0a0 0%, #8a7060 80%);
  border-radius: 30% 30% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cc-hand 5s ease-in-out infinite;
}
.scn-adair-card-clubs .lamp {
  position: absolute; top: 20%; left: 45%; width: 12%; height: 20%;
  background: radial-gradient(ellipse at 50% 20%, #d4b87a 0%, #a08858 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(212,184,122,0.3);
  animation: cc-lamp 4s ease-in-out infinite alternate;
}
.scn-adair-card-clubs .chips {
  position: absolute; bottom: 20%; right: 25%; width: 15%; height: 8%;
  background: radial-gradient(circle at 30% 30%, #b8a060 0%, #9a8040 60%, #7a6030 100%);
  border-radius: 30%;
  box-shadow: inset 0 2px 4px rgba(255,255,200,0.3);
  animation: cc-chips 7s ease-in-out infinite alternate;
}
@keyframes cc-card1 { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes cc-card2 { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes cc-card3 { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes cc-card4 { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-2px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes cc-hand { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(0deg) translateX(10px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes cc-lamp { 0% { opacity: 0.8; box-shadow: 0 0 30px 10px rgba(212,184,122,0.2); } 50% { opacity: 1; box-shadow: 0 0 60px 25px rgba(212,184,122,0.4); } 100% { opacity: 0.9; box-shadow: 0 0 40px 15px rgba(212,184,122,0.25); } }
@keyframes cc-chips { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }

/* adair-winnings: calm, dim interior – money and coins */
.scn-adair-winnings {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #1a1410 100%), 
              radial-gradient(ellipse at 50% 70%, #3a2820 0%, transparent 60%);
}
.scn-adair-winnings .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 35%;
  background: linear-gradient(180deg, #4a3820 0%, #3a2818 100%);
  border-radius: 15% 15% 5% 5%;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.7);
  animation: wi-table 12s ease-in-out infinite alternate;
}
.scn-adair-winnings .stack-left {
  position: absolute; bottom: 30%; left: 25%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #b8a060 0%, #9a8040 50%, #7a6030 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: wi-stack1 8s ease-in-out infinite;
}
.scn-adair-winnings .stack-right {
  position: absolute; bottom: 25%; left: 50%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #c8b070 0%, #a89050 50%, #887030 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: wi-stack2 10s ease-in-out infinite alternate;
}
.scn-adair-winnings .coin {
  position: absolute; bottom: 35%; width: 6%; height: 6%;
  background: radial-gradient(circle at 40% 40%, #d4c080 0%, #b8a060 50%, #907040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-adair-winnings .coin-1 { left: 35%; animation: wi-coin1 14s linear infinite; }
.scn-adair-winnings .coin-2 { left: 55%; animation: wi-coin2 16s linear infinite reverse; }
.scn-adair-winnings .coin-3 { left: 42%; top: 40%; width: 5%; height: 5%; animation: wi-coin3 18s linear infinite; }
.scn-adair-winnings .hand {
  position: absolute; bottom: 20%; left: 40%; width: 15%; height: 22%;
  background: radial-gradient(ellipse at 50% 30%, #c8b0a0 0%, #8a7060 80%);
  border-radius: 30% 30% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wi-hand 7s ease-in-out infinite;
}
.scn-adair-winnings .glow {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse, rgba(212,184,122,0.1) 0%, transparent 70%);
  animation: wi-glow 20s ease-in-out infinite alternate;
}
@keyframes wi-table { 0% { transform: scale(1); } 50% { transform: scale(0.98); } 100% { transform: scale(1); } }
@keyframes wi-stack1 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes wi-stack2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wi-coin1 { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-5px, -2px) rotate(90deg); } 50% { transform: translate(0, -5px) rotate(180deg); } 75% { transform: translate(5px, -2px) rotate(270deg); } 100% { transform: translate(0,0) rotate(360deg); } }
@keyframes wi-coin2 { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(3px, -3px) rotate(-90deg); } 50% { transform: translate(0, -6px) rotate(-180deg); } 75% { transform: translate(-3px, -3px) rotate(-270deg); } 100% { transform: translate(0,0) rotate(-360deg); } }
@keyframes wi-coin3 { 0% { transform: translate(0,0) scale(1); } 33% { transform: translate(4px, -4px) scale(1.1); } 66% { transform: translate(-4px, -2px) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }
@keyframes wi-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(5deg) translateX(-8px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes wi-glow { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

/* servant-testimony: tense, dim interior – corridor with servant */
.scn-servant-testimony {
  background: linear-gradient(180deg, #0e0c0a 0%, #1a1410 50%, #0e0c0a 100%), 
              radial-gradient(ellipse at 50% 40%, #2a1e18 0%, transparent 70%);
}
.scn-servant-testimony .corridor-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #1a1410 0%, #2a2018 30%, #1a1410 100%);
  animation: st-wall 10s ease-in-out infinite alternate;
}
.scn-servant-testimony .door {
  position: absolute; bottom: 0; left: 30%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #3a2818 0%, #2a1c0e 100%);
  border-radius: 0 0 5% 5%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.7), inset 0 0 10px rgba(0,0,0,0.5);
  animation: st-door 15s ease-in-out infinite;
}
.scn-servant-testimony .fireplace {
  position: absolute; bottom: 10%; left: 55%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #2a1c0e 0%, #1a100a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -20px 20px rgba(0,0,0,0.8);
}
.scn-servant-testimony .fire-glow {
  position: absolute; bottom: 12%; left: 58%; width: 19%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #d46a2a 0%, #8a4020 40%, transparent 70%);
  box-shadow: 0 0 40px 20px rgba(212,106,42,0.3);
  animation: st-fire 3s ease-in-out infinite alternate;
}
.scn-servant-testimony .window {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(100,120,140,0.2) 0%, rgba(40,60,80,0.4) 100%);
  border: 2px solid #3a2a1e;
  border-radius: 2px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.6);
  animation: st-window 20s ease-in-out infinite alternate;
}
.scn-servant-testimony .servant {
  position: absolute; bottom: 0; left: 20%; width: 12%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #1a1410 0%, #0e0c0a 80%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: st-servant 5s ease-in-out infinite;
}
.scn-servant-testimony .shadow {
  position: absolute; bottom: 0; left: 15%; width: 22%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: st-shadow 5s ease-in-out infinite;
}
.scn-servant-testimony .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  animation: st-floor 8s ease-in-out infinite alternate;
}
@keyframes st-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes st-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes st-fire { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes st-window { 0% { background: rgba(100,120,140,0.15); } 50% { background: rgba(100,120,140,0.3); } 100% { background: rgba(100,120,140,0.15); } }
@keyframes st-servant { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes st-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(2px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes st-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

/* park-lane-scene - dusk calm street */
.scn-park-lane-scene {
  background: linear-gradient(180deg, #2e2433 0%, #4a3b4a 30%, #8b6f5e 60%, #a0826b 100%),
              radial-gradient(ellipse at 40% 110%, #b8957a 0%, transparent 60%);
}
.scn-park-lane-scene .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a5a6e 0%, #3f344a 50%, #1f1a2e 100%);
  animation: pls-sky 15s ease-in-out infinite alternate;
}
.scn-park-lane-scene .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a3e32 0%, #2d241e 100%);
  border-radius: 80% 70% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
  animation: pls-street 20s ease-in-out infinite alternate;
}
.scn-park-lane-scene .building {
  position: absolute; bottom: 45%; left: 35%; width: 120px; height: 180px;
  background: linear-gradient(180deg, #4a3d3a 0%, #2e2420 100%);
  border-radius: 4% 4% 0 0;
  transform: perspective(600px) rotateX(4deg);
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
}
.scn-park-lane-scene .window-glow {
  position: absolute; bottom: 60%; left: 44%; width: 22px; height: 30px;
  background: radial-gradient(circle, #f5d6b0 0%, #d9a77a 60%, transparent 100%);
  border: 2px solid #3a2e28;
  border-radius: 4px;
  box-shadow: 0 0 30px 8px #d9a77a, 0 0 60px 20px rgba(217,167,122,0.4);
  animation: pls-window 3s ease-in-out infinite alternate;
}
.scn-park-lane-scene .figure-a {
  position: absolute; bottom: 46%; left: 38%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1f1a1a 0%, #0f0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pls-figure 6s ease-in-out infinite;
}
.scn-park-lane-scene .figure-b {
  position: absolute; bottom: 46%; left: 44%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1c1717 0%, #0d0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pls-figure 8s ease-in-out infinite reverse;
}
.scn-park-lane-scene .figure-c {
  position: absolute; bottom: 46%; left: 50%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #221c1c 0%, #0e0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pls-figure 7s ease-in-out infinite 2s;
}
.scn-park-lane-scene .lamp-post {
  position: absolute; bottom: 44%; left: 60%; width: 6px; height: 60px;
  background: linear-gradient(0deg, #2a2a2a 0%, #4a4a4a 100%);
  border-radius: 2px;
  box-shadow: -1px 0 4px rgba(0,0,0,0.5);
}
.scn-park-lane-scene .cloud {
  position: absolute; top: 12%; left: 70%; width: 100px; height: 30px;
  background: linear-gradient(180deg, rgba(200,180,200,0.5) 0%, rgba(255,255,255,0.08) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pls-cloud 40s linear infinite;
}
@keyframes pls-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pls-street { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes pls-window { 0% { box-shadow:0 0 20px 4px #d9a77a,0 0 40px 10px rgba(217,167,122,0.3); opacity:0.8 } 50% { box-shadow:0 0 40px 10px #f5d6b0,0 0 80px 20px rgba(245,214,176,0.5); opacity:1 } 100% { box-shadow:0 0 25px 5px #d9a77a,0 0 50px 12px rgba(217,167,122,0.35); opacity:0.85 } }
@keyframes pls-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 33% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 66% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes pls-cloud { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }

/* encounter-with-old-man - dusk alley */
.scn-encounter-with-old-man {
  background: linear-gradient(180deg, #3a2e3a 0%, #5a4a4a 40%, #2e2420 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 70%);
}
.scn-encounter-with-old-man .bg-alley {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3e3e 0%, #1f1a1a 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: eom-alley 20s ease-in-out infinite alternate;
}
.scn-encounter-with-old-man .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2a221e 0%, #3a302c 100%);
  border-radius: 20% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-encounter-with-old-man .old-man {
  position: absolute; bottom: 30%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1512 0%, #0f0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: eom-oldman 6s ease-in-out infinite;
}
.scn-encounter-with-old-man .narrator {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #201c1a 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: eom-narrator 8s ease-in-out infinite alternate;
}
.scn-encounter-with-old-man .book-1 {
  position: absolute; bottom: 24%; left: 36%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #6a503a 0%, #4a3424 100%);
  border-radius: 2px;
  transform: rotate(-40deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.6);
  animation: eom-book 3s ease-out infinite;
}
.scn-encounter-with-old-man .book-2 {
  position: absolute; bottom: 22%; left: 40%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #5a4430 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.6);
  animation: eom-book 3.5s ease-out infinite 0.5s;
}
.scn-encounter-with-old-man .book-3 {
  position: absolute; bottom: 26%; left: 48%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #7a603a 0%, #5a4020 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.6);
  animation: eom-book 4s ease-out infinite 1s;
}
.scn-encounter-with-old-man .book-shadow {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 4px;
  background: rgba(0,0,0,0.5);
  filter: blur(3px);
  border-radius: 50%;
  animation: eom-shadow 4s ease-out infinite;
}
@keyframes eom-alley { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes eom-oldman { 0% { transform: rotate(-5deg) translateY(0) } 33% { transform: rotate(-4deg) translateY(-2px) } 66% { transform: rotate(-6deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes eom-narrator { 0% { transform: rotate(3deg) } 50% { transform: rotate(2deg) translateX(2px) } 100% { transform: rotate(3deg) } }
@keyframes eom-book { 0% { transform: rotate(-40deg) translateY(0); opacity:1 } 30% { transform: rotate(-20deg) translateY(-10px); opacity:1 } 60% { transform: rotate(-50deg) translateY(5px); opacity:0.8 } 100% { transform: rotate(-40deg) translateY(20px); opacity:0 } }
@keyframes eom-shadow { 0% { transform: scaleX(1); opacity:1 } 30% { transform: scaleX(1.2); opacity:0.7 } 60% { transform: scaleX(0.9); opacity:0.4 } 100% { transform: scaleX(1); opacity:0 } }

/* park-lane-house-exterior - dusk calm */
.scn-park-lane-house-exterior {
  background: linear-gradient(180deg, #3f344a 0%, #6a5a6e 35%, #8b6f5e 70%, #a0826b 100%),
              radial-gradient(ellipse at 60% 100%, #b8957a 0%, transparent 60%);
}
.scn-park-lane-house-exterior .sky-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a6a7e 0%, #4a3a4a 100%);
  animation: phe-sky 18s ease-in-out infinite alternate;
}
.scn-park-lane-house-exterior .house-front {
  position: absolute; bottom: 30%; left: 25%; width: 160px; height: 140px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.7);
  transform: perspective(500px) rotateX(3deg);
}
.scn-park-lane-house-exterior .roof {
  position: absolute; bottom: 60%; left: 22%; width: 190px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(5% 100%, 50% 0%, 95% 100%);
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-park-lane-house-exterior .wall-railing {
  position: absolute; bottom: 18%; left: 10%; width: 100%; height: 12%;
  background: linear-gradient(180deg, #4a3e32 0%, #3a2e24 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-park-lane-house-exterior .window-lit {
  position: absolute; bottom: 42%; left: 38%; width: 24px; height: 32px;
  background: radial-gradient(circle, #f5d6b0 0%, #d9a77a 60%);
  border: 2px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: 0 0 30px 6px #d9a77a, 0 0 60px 15px rgba(217,167,122,0.4);
  animation: phe-window 4s ease-in-out infinite alternate;
}
.scn-park-lane-house-exterior .garden {
  position: absolute; bottom: 8%; left: 5%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 30% 0 0 / 100% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: phe-garden 25s ease-in-out infinite alternate;
}
.scn-park-lane-house-exterior .tree-sway {
  position: absolute; bottom: 30%; left: 15%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: phe-tree 8s ease-in-out infinite;
}
.scn-park-lane-house-exterior .lamp-street {
  position: absolute; bottom: 18%; right: 20%; width: 6px; height: 40px;
  background: #2a2a2a;
  border-radius: 2px;
}
.scn-park-lane-house-exterior .cloud-soft {
  position: absolute; top: 16%; left: 65%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(220,200,220,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: phe-cloud 45s linear infinite;
}
@keyframes phe-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes phe-window { 0% { box-shadow:0 0 20px 4px #d9a77a; opacity:0.8 } 50% { box-shadow:0 0 40px 12px #f5d6b0; opacity:1 } 100% { box-shadow:0 0 25px 6px #d9a77a; opacity:0.85 } }
@keyframes phe-garden { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes phe-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes phe-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* old-man-visits - dim interior */
.scn-old-man-visits {
  background: linear-gradient(180deg, #2a221e 0%, #3a302a 30%, #4a3e38 60%, #5a4a42 100%),
              radial-gradient(ellipse at 60% 80%, #6a5a50 0%, transparent 70%);
}
.scn-old-man-visits .interior-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a302a 0%, #2a1e1a 50%, #1a1210 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
  animation: omv-wall 30s ease-in-out infinite alternate;
}
.scn-old-man-visits .bookshelf {
  position: absolute; bottom: 20%; left: 5%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 4px 0 10px rgba(0,0,0,0.5);
  display: flex; flex-direction: column; gap: 4px;
  padding: 4px;
}
.scn-old-man-visits .bookshelf::before {
  content: ""; position: absolute; width: 100%; height: 100%;
  background: repeating-linear-gradient(0deg, #5a4a3a 0px, #5a4a3a 3px, #3a2a1a 3px, #3a2a1a 6px);
  border-radius: 2px;
}
.scn-old-man-visits .desk {
  position: absolute; bottom: 8%; left: 35%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6), inset 0 4px 8px rgba(255,255,255,0.05);
  transform: perspective(400px) rotateX(2deg);
}
.scn-old-man-visits .desk-lamp {
  position: absolute; bottom: 28%; left: 42%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  transform-origin: bottom center;
}
.scn-old-man-visits .lamp-glow {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f5d6b0 0%, #d9a77a 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(217,167,122,0.6), 0 0 120px 40px rgba(245,214,176,0.2);
  animation: omv-lamp 5s ease-in-out infinite alternate;
}
.scn-old-man-visits .old-figure {
  position: absolute; bottom: 10%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1512 0%, #0f0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  box-shadow: -4px 0 8px rgba(0,0,0,0.6);
  animation: omv-figure 12s ease-in-out infinite;
}
.scn-old-man-visits .door-arch {
  position: absolute; bottom: 0; right: 10%; width: 60px; height: 90%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: -2px 0 10px rgba(0,0,0,0.5);
  animation: omv-door 20s ease-in-out infinite alternate;
}
.scn-old-man-visits .shadow-pool {
  position: absolute; bottom: 0; left: 30%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: omv-shadow 8s ease-in-out infinite alternate;
}
@keyframes omv-wall { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes omv-lamp { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.98) } }
@keyframes omv-figure { 0% { transform: rotate(2deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-2px) } 50% { transform: rotate(3deg) translateY(-1px) } 75% { transform: rotate(1deg) translateY(-3px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes omv-door { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes omv-shadow { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.2) } 100% { opacity:0.4; transform: scaleX(1) } }

/* discovery-of-body */
.scn-discovery-of-body { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a30 50%, #2a2a45 100%), radial-gradient(ellipse at 50% 100%, #2a2a45 0%, transparent 70%); }
.scn-discovery-of-body .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #151525 0%, #1a1a35 100%); animation: dob-wall 8s ease-in-out infinite alternate; }
.scn-discovery-of-body .table   { position:absolute; bottom:30%; left:25%; width:50%; height:5%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: dob-table 12s ease-in-out infinite; }
.scn-discovery-of-body .coins   { position:absolute; bottom:32%; left:35%; width:30%; height:3%; background: radial-gradient(circle at 30% 50%, #d4a44a 0%, #b08030 50%, #8a6020 100%); border-radius:30%; box-shadow: 0 0 12px 2px #b08030; animation: dob-coins 4s ease-in-out infinite alternate; }
.scn-discovery-of-body .body    { position:absolute; bottom:18%; left:30%; width:40%; height:18%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6); animation: dob-body 5s ease-in-out infinite; }
.scn-discovery-of-body .lamp    { position:absolute; bottom:38%; left:50%; width:6px; height:8px; background: radial-gradient(circle, #ffd060 0%, #c08030 100%); border-radius:50%; box-shadow: 0 0 20px 6px #c08030, 0 0 40px 12px rgba(192,128,48,.3); animation: dob-lamp 3s ease-in-out infinite alternate; }
.scn-discovery-of-body .dust-1  { position:absolute; top:20%; left:10%; width:4px; height:4px; background: rgba(200,200,200,.15); border-radius:50%; filter: blur(2px); animation: dob-dust1 20s linear infinite; }
.scn-discovery-of-body .dust-2  { position:absolute; top:40%; right:15%; width:3px; height:3px; background: rgba(200,200,200,.1); border-radius:50%; filter: blur(1.5px); animation: dob-dust2 25s linear infinite reverse; }
@keyframes dob-wall  { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes dob-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dob-coins { 0% { box-shadow: 0 0 10px 1px #b08030; opacity:.8 } 50% { box-shadow: 0 0 18px 4px #e0b050; opacity:1 } 100% { box-shadow: 0 0 12px 2px #b08030; opacity:.85 } }
@keyframes dob-body  { 0% { transform: scaleY(1) } 25% { transform: scaleY(1.005) } 50% { transform: scaleY(1) } 75% { transform: scaleY(0.995) } 100% { transform: scaleY(1) } }
@keyframes dob-lamp  { 0% { box-shadow: 0 0 15px 4px #c08030, 0 0 30px 8px rgba(192,128,48,.2); opacity:.8 } 50% { box-shadow: 0 0 25px 8px #ffd060, 0 0 50px 16px rgba(255,208,96,.4); opacity:1 } 100% { box-shadow: 0 0 18px 5px #c08030, 0 0 35px 10px rgba(192,128,48,.25); opacity:.85 } }
@keyframes dob-dust1 { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:0 } 20% { opacity:1 } 80% { opacity:1 } 100% { transform: translate(60px,-120px) rotate(360deg) scale(1.5); opacity:0 } }
@keyframes dob-dust2 { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:0 } 30% { opacity:.8 } 70% { opacity:.8 } 100% { transform: translate(-40px,-80px) rotate(-360deg) scale(1.2); opacity:0 } }

/* locked-room-mystery */
.scn-locked-room-mystery { background: linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #100a08 100%), radial-gradient(ellipse at 50% 60%, #2a2018 0%, transparent 70%); }
.scn-locked-room-mystery .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #221c16 0%, #1a1410 100%); animation: lrm-bg 10s ease-in-out infinite alternate; }
.scn-locked-room-mystery .door    { position:absolute; bottom:10%; left:20%; width:30%; height:80%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.4), 2px 0 6px rgba(0,0,0,.5); animation: lrm-door 7s ease-in-out infinite; }
.scn-locked-room-mystery .window  { position:absolute; bottom:40%; right:15%; width:25%; height:40%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border: 4px solid #2a1a10; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,20,30,.3), 0 4px 8px rgba(0,0,0,.4); animation: lrm-window 6s ease-in-out infinite alternate; }
.scn-locked-room-mystery .curtain { position:absolute; bottom:40%; right:15%; width:25%; height:40%; background: linear-gradient(180deg, rgba(180,140,100,.4) 0%, rgba(120,90,60,.2) 100%); border-radius:4px; transform-origin: top; animation: lrm-curtain 8s ease-in-out infinite alternate; }
.scn-locked-room-mystery .shadow  { position:absolute; bottom:30%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, rgba(10,10,10,.6) 0%, rgba(10,10,10,.2) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(-10deg); animation: lrm-shadow 5s ease-in-out infinite; }
.scn-locked-room-mystery .clock   { position:absolute; bottom:65%; left:8%; width:12%; height:12%; background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%); border-radius:50%; box-shadow: 0 0 0 4px #2a1a10; animation: lrm-clock 2s ease-in-out infinite; }
@keyframes lrm-bg  { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes lrm-door { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes lrm-window { 0% { box-shadow: inset 0 0 20px rgba(0,20,30,.3), 0 4px 8px rgba(0,0,0,.4); opacity:.9 } 50% { box-shadow: inset 0 0 30px rgba(0,40,60,.4), 0 4px 8px rgba(0,0,0,.5); opacity:1 } 100% { box-shadow: inset 0 0 20px rgba(0,20,30,.3), 0 4px 8px rgba(0,0,0,.4); opacity:.9 } }
@keyframes lrm-curtain { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes lrm-shadow { 0%,100% { transform: translateX(0) skewX(-10deg) } 50% { transform: translateX(10px) skewX(-5deg) } }
@keyframes lrm-clock { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } }

/* shot-from-outside */
.scn-shot-from-outside { background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1f 50%, #050510 100%), radial-gradient(ellipse at 40% 30%, #2a2a4e 0%, transparent 70%); }
.scn-shot-from-outside .room-interior { position:absolute; inset:0; background: linear-gradient(135deg, #121224 0%, #0a0a1a 100%); animation: sfo-room 9s ease-in-out infinite alternate; }
.scn-shot-from-outside .window-frame  { position:absolute; bottom:40%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border: 4px solid #1a1a2a; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,20,40,.5), 0 4px 8px rgba(0,0,0,.4); animation: sfo-window 5s ease-in-out infinite alternate; }
.scn-shot-from-outside .bullet-hole   { position:absolute; bottom:55%; left:20%; width:4%; height:4%; background: radial-gradient(circle, #0a0a1a 0%, #1a1a2a 100%); border-radius:50%; box-shadow: 0 0 0 2px #2a2a4a, 0 0 8px 2px rgba(10,10,26,.6); animation: sfo-bullet 3s ease-in-out infinite; }
.scn-shot-from-outside .body-figure   { position:absolute; bottom:20%; left:25%; width:30%; height:18%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6); animation: sfo-body 6s ease-in-out infinite; }
.scn-shot-from-outside .impact-mark   { position:absolute; bottom:50%; right:25%; width:8%; height:8%; background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a100a 100%); border-radius:50%; box-shadow: inset 0 0 6px rgba(0,0,0,.5); transform: rotate(15deg); animation: sfo-impact 4s ease-in-out infinite alternate; }
.scn-shot-from-outside .shooter-shadow{ position:absolute; bottom:45%; left:5%; width:15%; height:25%; background: linear-gradient(180deg, rgba(15,15,30,.5) 0%, rgba(10,10,20,.2) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(-10deg); animation: sfo-shooter 7s ease-in-out infinite; }
@keyframes sfo-room  { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes sfo-window { 0% { box-shadow: inset 0 0 30px rgba(0,20,40,.5), 0 4px 8px rgba(0,0,0,.4); opacity:.9 } 50% { box-shadow: inset 0 0 40px rgba(0,30,60,.6), 0 4px 8px rgba(0,0,0,.5); opacity:1 } 100% { box-shadow: inset 0 0 30px rgba(0,20,40,.5), 0 4px 8px rgba(0,0,0,.4); opacity:.9 } }
@keyframes sfo-bullet { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) rotate(10deg) } }
@keyframes sfo-body   { 0% { transform: scaleY(1) } 25% { transform: scaleY(1.005) } 50% { transform: scaleY(1) } 75% { transform: scaleY(0.995) } 100% { transform: scaleY(1) } }
@keyframes sfo-impact { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(20deg) scale(1.05) } 100% { transform: rotate(15deg) scale(1) } }
@keyframes sfo-shooter { 0%,100% { transform: translateX(0) skewX(-10deg) } 50% { transform: translateX(-5px) skewX(-5deg) } }

/* watson-theorizes */
.scn-watson-theorizes { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%); }
.scn-watson-theorizes .bg-room   { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a10 0%, #1a1008 100%); animation: wt-bg 12s ease-in-out infinite alternate; }
.scn-watson-theorizes .chair     { position:absolute; bottom:15%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 4% 4% / 20% 20% 8% 8%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: wt-chair 8s ease-in-out infinite; }
.scn-watson-theorizes .watson    { position:absolute; bottom:20%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wt-watson 5s ease-in-out infinite; }
.scn-watson-theorizes .desk      { position:absolute; bottom:20%; left:20%; width:60%; height:6%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: wt-desk 10s ease-in-out infinite; }
.scn-watson-theorizes .lamp-light{ position:absolute; bottom:50%; left:50%; width:8px; height:10px; background: radial-gradient(circle, #ffd060 0%, #c08030 100%); border-radius:50%; box-shadow: 0 0 30px 10px #c08030, 0 0 60px 20px rgba(192,128,48,.3); animation: wt-lamp 4s ease-in-out infinite alternate; }
.scn-watson-theorizes .smoke-1   { position:absolute; bottom:55%; left:48%; width:6px; height:6px; background: rgba(200,180,160,.2); border-radius:50%; filter: blur(4px); animation: wt-smoke1 15s linear infinite; }
.scn-watson-theorizes .smoke-2   { position:absolute; bottom:58%; left:52%; width:5px; height:5px; background: rgba(200,180,160,.15); border-radius:50%; filter: blur(3px); animation: wt-smoke2 18s linear infinite reverse; }
@keyframes wt-bg  { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes wt-chair { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } }
@keyframes wt-watson { 0% { transform: scaleY(1) rotate(0deg) } 25% { transform: scaleY(1.005) rotate(1deg) } 50% { transform: scaleY(1) rotate(0deg) } 75% { transform: scaleY(0.995) rotate(-1deg) } 100% { transform: scaleY(1) rotate(0deg) } }
@keyframes wt-desk { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }
@keyframes wt-lamp { 0% { box-shadow: 0 0 25px 8px #c08030, 0 0 50px 15px rgba(192,128,48,.2); opacity:.85 } 50% { box-shadow: 0 0 40px 14px #ffd060, 0 0 80px 25px rgba(255,208,96,.4); opacity:1 } 100% { box-shadow: 0 0 30px 10px #c08030, 0 0 60px 18px rgba(192,128,48,.25); opacity:.9 } }
@keyframes wt-smoke1 { 0% { transform: translate(0,0) scale(1); opacity:0 } 20% { opacity:.6 } 80% { opacity:.4 } 100% { transform: translate(-30px,-80px) scale(2); opacity:0 } }
@keyframes wt-smoke2 { 0% { transform: translate(0,0) scale(1); opacity:0 } 30% { opacity:.5 } 70% { opacity:.3 } 100% { transform: translate(20px,-60px) scale(1.8); opacity:0 } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.cloud-arrival { position: absolute; pointer-events: none; }
.escaping { position: absolute; pointer-events: none; }
.motes-slow { position: absolute; pointer-events: none; }
.offered { position: absolute; pointer-events: none; }
.ripple { position: absolute; pointer-events: none; }
.stacked { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* letter-returned-holmes-smiles – bright interior, calm mood */
.scn-letter-returned-holmes-smiles {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e8d5b8 30%, #d4b896 55%, #c4a67e 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255,235,200,0.6) 0%, transparent 60%);
}
.scn-letter-returned-holmes-smiles .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #ede3d2 0%, #d9c6ab 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.08);
  animation: lrhs-wall 20s ease-in-out infinite alternate;
}
.scn-letter-returned-holmes-smiles .window {
  position: absolute; top: 8%; left: 65%; width: 22%; height: 40%;
  background: linear-gradient(135deg, #b0d0e8 0%, #d0e4f0 60%, #e8f0f8 100%);
  border-radius: 6px 6px 20px 20px;
  box-shadow: inset 0 0 40px rgba(255,255,220,0.5), 0 0 30px rgba(200,220,240,0.3);
  animation: lrhs-window 12s ease-in-out infinite alternate;
}
.scn-letter-returned-holmes-smiles .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #8b6f4e 0%, #6a4f33 40%, #4a3520 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3), inset 0 4px 12px rgba(255,200,120,0.1);
  animation: lrhs-desk 25s ease-in-out infinite;
}
.scn-letter-returned-holmes-smiles .box {
  position: absolute; bottom: 28%; left: 35%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 6px;
  box-shadow: 2px 4px 12px rgba(0,0,0,0.4), inset 0 0 0 1px #5a4030;
  animation: lrhs-box 8s ease-in-out infinite;
}
.scn-letter-returned-holmes-smiles .letter {
  position: absolute; bottom: 38%; left: 37%; width: 10%; height: 6%;
  background: linear-gradient(135deg, #3a6a8a 0%, #2a4a6a 100%);
  border-radius: 2px;
  box-shadow: 1px 2px 6px rgba(0,0,0,0.3), 0 0 12px rgba(60,120,180,0.3);
  animation: lrhs-letter 6s ease-in-out infinite alternate;
}
.scn-letter-returned-holmes-smiles .holmes {
  position: absolute; bottom: 26%; left: 20%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: drop-shadow(2px 4px 8px rgba(0,0,0,0.3));
  animation: lrhs-holmes 10s ease-in-out infinite;
}
.scn-letter-returned-holmes-smiles .minister {
  position: absolute; bottom: 24%; right: 15%; width: 16%; height: 42%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  filter: drop-shadow(2px 2px 6px rgba(0,0,0,0.2));
  animation: lrhs-minister 14s ease-in-out infinite alternate;
}
.scn-letter-returned-holmes-smiles .lamp-glow {
  position: absolute; top: 22%; left: 28%; width: 20%; height: 18%;
  background: radial-gradient(ellipse at 50% 50%, rgba(240,200,140,0.6) 0%, rgba(200,160,100,0.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: lrhs-lamp 16s ease-in-out infinite alternate;
}
@keyframes lrhs-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes lrhs-window {
  0% { transform: scaleY(1); opacity: 0.75; box-shadow: inset 0 0 30px rgba(255,255,220,0.3), 0 0 20px rgba(200,220,240,0.2); }
  50% { transform: scaleY(1.02); opacity: 0.9; box-shadow: inset 0 0 50px rgba(255,255,220,0.6), 0 0 30px rgba(200,220,240,0.4); }
  100% { transform: scaleY(1); opacity: 0.8; box-shadow: inset 0 0 35px rgba(255,255,220,0.4), 0 0 25px rgba(200,220,240,0.25); }
}
@keyframes lrhs-desk {
  0% { transform: translateY(0); box-shadow: 0 -4px 12px rgba(0,0,0,0.3), inset 0 4px 12px rgba(255,200,120,0.1); }
  50% { transform: translateY(-2px); box-shadow: 0 -6px 18px rgba(0,0,0,0.25), inset 0 4px 16px rgba(255,200,120,0.15); }
  100% { transform: translateY(0); box-shadow: 0 -4px 12px rgba(0,0,0,0.3), inset 0 4px 12px rgba(255,200,120,0.1); }
}
@keyframes lrhs-box {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes lrhs-letter {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.85; box-shadow: 1px 2px 6px rgba(0,0,0,0.3), 0 0 12px rgba(60,120,180,0.3); }
  50% { transform: translateY(-2px) rotate(2deg); opacity: 1; box-shadow: 1px 3px 8px rgba(0,0,0,0.35), 0 0 18px rgba(60,120,180,0.5); }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.9; box-shadow: 1px 2px 6px rgba(0,0,0,0.3), 0 0 12px rgba(60,120,180,0.3); }
}
@keyframes lrhs-holmes {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-4px) rotate(1deg) scaleY(1.01); }
  50% { transform: translateY(-2px) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes lrhs-minister {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-1deg) scaleY(1.005); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lrhs-lamp {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(1); }
}

.scn-item-stolen-letter {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9c4a8 50%, #b89a7a 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 60%);
}
.scn-item-stolen-letter .desk {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: si2-desk 12s ease-in-out infinite alternate;
}
.scn-item-stolen-letter .lamp {
  position: absolute; bottom: 40%; left: 65%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #c0a070 0%, #806040 100%);
  border-radius: 30% 30% 10% 10%; transform-origin: bottom center;
  animation: si2-lamp 4s ease-in-out infinite alternate;
}
.scn-item-stolen-letter .lamp::after {
  content: ''; position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,208,128,0.6), 0 0 60px 30px rgba(255,208,128,0.3);
  animation: si2-glow 2s ease-in-out infinite alternate;
}
.scn-item-stolen-letter .letter {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 40px;
  background: #f0e0c0; border: 1px solid #c0a070; border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: si2-letter 5s ease-in-out infinite;
}
.scn-item-stolen-letter .holmes {
  position: absolute; bottom: 15%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-holmes 8s ease-in-out infinite alternate;
}
.scn-item-stolen-letter .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: si2-shadow 6s ease-in-out infinite alternate;
}
.scn-item-stolen-letter .glow {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,160,0.15) 0%, transparent 70%);
  animation: si2-glow-bg 10s ease-in-out infinite;
}
@keyframes si2-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes si2-lamp { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes si2-glow { 0% { opacity: 0.8; box-shadow: 0 0 20px 10px rgba(255,208,128,0.4), 0 0 40px 20px rgba(255,208,128,0.2); } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,208,128,0.6), 0 0 80px 40px rgba(255,208,128,0.3); } 100% { opacity: 0.85; box-shadow: 0 0 25px 12px rgba(255,208,128,0.45), 0 0 50px 25px rgba(255,208,128,0.25); } }
@keyframes si2-letter { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(1deg); } 50% { transform: translate(-1px,1px) rotate(-1deg); } 75% { transform: translate(1px,2px) rotate(0.5deg); } }
@keyframes si2-holmes { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes si2-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.1); } 100% { opacity: 0.3; transform: scaleX(1); } }
@keyframes si2-glow-bg { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.1; } }

.scn-lady-hilda-visit-suspicious {
  background: linear-gradient(180deg, #f0e8dc 0%, #d6ccb8 50%, #b8a88a 100%),
              radial-gradient(ellipse at 70% 40%, #fff8e0 0%, transparent 50%);
}
.scn-lady-hilda-visit-suspicious .door {
  position: absolute; top: 10%; left: 5%; width: 30%; height: 80%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: lhv-door 8s ease-in-out infinite alternate;
}
.scn-lady-hilda-visit-suspicious .figure-lady {
  position: absolute; bottom: 10%; left: 40%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lhv-lady 6s ease-in-out infinite;
}
.scn-lady-hilda-visit-suspicious .holmes-silhouette {
  position: absolute; bottom: 10%; right: 20%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lhv-holmes 10s ease-in-out infinite alternate;
}
.scn-lady-hilda-visit-suspicious .carpet {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
  animation: lhv-carpet 15s ease-in-out infinite alternate;
}
.scn-lady-hilda-visit-suspicious .window-bright {
  position: absolute; top: 15%; right: 10%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #fff8e0 0%, #e0d0b0 100%);
  border: 3px solid #4a3020; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,248,224,0.5);
  animation: lhv-window 12s ease-in-out infinite alternate;
}
.scn-lady-hilda-visit-suspicious .hand-tremble {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 16px;
  background: #c8553d; border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: lhv-hand 2s ease-in-out infinite;
}
@keyframes lhv-door { 0% { transform: scaleX(1); box-shadow: 2px 0 8px; } 50% { transform: scaleX(0.98); box-shadow: 1px 0 4px; } 100% { transform: scaleX(1); box-shadow: 2px 0 8px; } }
@keyframes lhv-lady { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } }
@keyframes lhv-holmes { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lhv-carpet { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lhv-window { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes lhv-hand { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(3deg) translateX(2px); } 50% { transform: rotate(-2deg) translateX(-1px); } 75% { transform: rotate(4deg) translateX(1px); } 100% { transform: rotate(-5deg) translateX(0); } }

.scn-second-stain-confrontation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3a3a5e 100%),
              radial-gradient(ellipse at 20% 20%, #4a4a6e 0%, transparent 70%);
}
.scn-second-stain-confrontation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: ssc-floor 20s ease-in-out infinite alternate;
}
.scn-second-stain-confrontation .carpet {
  position: absolute; bottom: 20%; left: 10%; width: 70%; height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: ssc-carpet 15s ease-in-out infinite alternate;
}
.scn-second-stain-confrontation .stain-missing {
  position: absolute; bottom: 30%; left: 35%; width: 12%; height: 8%;
  background: rgba(0,0,0,0.3); border: 2px dashed #6a3a3a; border-radius: 2px;
  animation: ssc-stain 12s ease-in-out infinite;
}
.scn-second-stain-confrontation .cavity {
  position: absolute; bottom: 25%; left: 30%; width: 30%; height: 15%;
  background: #0a0a1a; border: 1px solid #2a2a4a; border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 10px rgba(100,80,60,0.3);
  animation: ssc-cavity 8s ease-in-out infinite alternate;
}
.scn-second-stain-confrontation .constable {
  position: absolute; bottom: 10%; left: 60%; width: 26px; height: 68px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssc-constable 10s ease-in-out infinite alternate;
}
.scn-second-stain-confrontation .woman-faint {
  position: absolute; bottom: 8%; left: 25%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssc-woman 6s ease-in-out infinite;
}
.scn-second-stain-confrontation .shadow-crawl {
  position: absolute; bottom: 5%; left: 20%; width: 50%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ssc-shadow 14s ease-in-out infinite alternate;
}
@keyframes ssc-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ssc-carpet { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ssc-stain { 0%,100% { opacity: 0.2; } 50% { opacity: 0.5; } }
@keyframes ssc-cavity { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 20px rgba(100,80,60,0.5); } 100% { transform: scaleY(1); } }
@keyframes ssc-constable { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ssc-woman { 0%,100% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(10px) rotate(2deg); } 75% { transform: translateX(5px) rotate(0deg); } }
@keyframes ssc-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(1); } }

.scn-lady-hilda-confesses-document-return {
  background: linear-gradient(180deg, #f2e6d0 0%, #dcc8a8 50%, #b89a7a 100%),
              radial-gradient(ellipse at 50% 40%, #fff8e0 0%, transparent 60%);
}
.scn-lady-hilda-confesses-document-return .sofa {
  position: absolute; bottom: 10%; left: 15%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: lhc-sofa 12s ease-in-out infinite alternate;
}
.scn-lady-hilda-confesses-document-return .figure-lady-confess {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lhc-lady 6s ease-in-out infinite;
}
.scn-lady-hilda-confesses-document-return .holmes-standing {
  position: absolute; bottom: 10%; left: 65%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lhc-holmes 10s ease-in-out infinite alternate;
}
.scn-lady-hilda-confesses-document-return .document-held {
  position: absolute; bottom: 35%; left: 42%; width: 30px; height: 20px;
  background: #f0e0c0; border: 1px solid #c0a070; border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: lhc-doc 8s ease-in-out infinite;
}
.scn-lady-hilda-confesses-document-return .lamp-bright {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 40px;
  background: linear-gradient(180deg, #c0a070 0%, #806040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(255,208,128,0.3);
  animation: lhc-lamp 4s ease-in-out infinite alternate;
}
.scn-lady-hilda-confesses-document-return .tear {
  position: absolute; bottom: 32%; left: 44%; width: 4px; height: 6px;
  background: #c8d8e8; border-radius: 50%;
  animation: lhc-tear 3s ease-in-out infinite;
}
@keyframes lhc-sofa { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lhc-lady { 0%,100% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 75% { transform: translateY(-3px) rotate(0deg); } }
@keyframes lhc-holmes { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lhc-doc { 0%,100% { transform: translate(0,0) rotate(0deg); opacity: 0.8; } 25% { transform: translate(2px,-1px) rotate(1deg); } 50% { transform: translate(-1px,2px) rotate(-1deg); opacity: 1; } 75% { transform: translate(1px,1px) rotate(0.5deg); } }
@keyframes lhc-lamp { 0% { transform: translateX(-50%) rotate(-2deg); opacity: 0.8; } 50% { transform: translateX(-50%) rotate(2deg); opacity: 1; } 100% { transform: translateX(-50%) rotate(-2deg); opacity: 0.8; } }
@keyframes lhc-tear { 0% { transform: translateY(0) scaleY(1); opacity: 0; } 20% { opacity: 1; } 50% { transform: translateY(-8px) scaleY(0.5); opacity: 0.6; } 100% { transform: translateY(-16px) scaleY(0); opacity: 0; } }

.scn-saltire-found-duke-reconciliation {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 40%, #d4b896 100%),
              radial-gradient(ellipse at 80% 30%, #fff8e7 0%, transparent 60%);
}
.scn-saltire-found-duke-reconciliation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b8 0%, #d4b896 100%);
  animation: srd-wall 12s ease-in-out infinite alternate;
}
.scn-saltire-found-duke-reconciliation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b3e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.15);
}
.scn-saltire-found-duke-reconciliation .window {
  position: absolute; top: 12%; left: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #cce6ff 0%, #a0c8e8 70%);
  border: 4px solid #8b7355;
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(160,200,232,0.4);
  animation: srd-window 8s ease-in-out infinite alternate;
}
.scn-saltire-found-duke-reconciliation .table {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #6b5b3e 0%, #4a3e2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-saltire-found-duke-reconciliation .holmes {
  position: absolute; bottom: 10%; left: 20%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srd-holmes 6s ease-in-out infinite;
}
.scn-saltire-found-duke-reconciliation .duke {
  position: absolute; bottom: 10%; right: 20%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srd-duke 6s ease-in-out infinite;
}
.scn-saltire-found-duke-reconciliation .lantern {
  position: absolute; bottom: 28%; left: 48%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffe0a0 0%, #d4a050 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffe0a0, 0 0 40px 12px rgba(255,224,160,0.5);
  animation: srd-lantern 3s ease-in-out infinite alternate;
}
@keyframes srd-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes srd-window { 0% { filter:brightness(1); } 50% { filter:brightness(1.2); } 100% { filter:brightness(0.9); } }
@keyframes srd-holmes { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(1deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes srd-duke { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-2px) rotate(-1deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes srd-lantern { 0% { box-shadow:0 0 20px 6px #ffe0a0, 0 0 40px 12px rgba(255,224,160,0.5); opacity:0.8; } 50% { box-shadow:0 0 30px 10px #ffe0a0, 0 0 60px 18px rgba(255,224,160,0.7); opacity:1; } 100% { box-shadow:0 0 20px 6px #ffe0a0, 0 0 40px 12px rgba(255,224,160,0.5); opacity:0.9; } }

/* Black Peter murder intro */
.scn-black-peter-murder-intro {
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%),
              radial-gradient(ellipse at 40% 60%, #1a2a4a 0%, transparent 70%);
}
.scn-black-peter-murder-intro .cabin-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%);
}
.scn-black-peter-murder-intro .cabin-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0;
  transform: perspective(200px) rotateX(10deg);
  transform-origin: bottom;
}
.scn-black-peter-murder-intro .corpse {
  position: absolute; bottom: 20%; left: 35%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(5deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.8);
  animation: bpm-corpse 20s ease-in-out infinite;
}
.scn-black-peter-murder-intro .harpoon {
  position: absolute; bottom: 40%; left: 38%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  transform: rotate(-15deg);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: bpm-harpoon 10s ease-in-out infinite alternate;
}
.scn-black-peter-murder-intro .pouch {
  position: absolute; bottom: 18%; left: 45%; width: 8%; height: 6%;
  background: #5a4a3a;
  border-radius: 30% 30% 50% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-black-peter-murder-intro .lamp {
  position: absolute; top: 15%; left: 60%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffcc66 0%, #b8860b 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #ffcc66, 0 0 48px 16px rgba(255,204,102,0.3);
  animation: bpm-lamp 4s ease-in-out infinite alternate;
}
.scn-black-peter-murder-intro .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #000000 0%, transparent 100%);
  opacity: 0.6;
  animation: bpm-shadow 15s ease-in-out infinite alternate;
}
@keyframes bpm-corpse { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(6deg) translateY(-2px); } 100% { transform:rotate(5deg) translateY(0); } }
@keyframes bpm-harpoon { 0% { transform:rotate(-15deg) scale(1); } 50% { transform:rotate(-13deg) scale(1.05); } 100% { transform:rotate(-15deg) scale(1); } }
@keyframes bpm-lamp { 0% { box-shadow:0 0 24px 8px #ffcc66, 0 0 48px 16px rgba(255,204,102,0.3); opacity:0.7; } 50% { box-shadow:0 0 40px 14px #ffcc66, 0 0 80px 24px rgba(255,204,102,0.5); opacity:1; } 100% { box-shadow:0 0 24px 8px #ffcc66, 0 0 48px 16px rgba(255,204,102,0.3); opacity:0.8; } }
@keyframes bpm-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

/* Forest Row cabin ambush */
.scn-forest-row-cabin-ambush {
  background: linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #1a1a3e 100%),
              radial-gradient(ellipse at 70% 20%, #2a2a4a 0%, transparent 70%);
}
.scn-forest-row-cabin-ambush .night-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #14142e 100%);
  animation: frc-sky 25s ease-in-out infinite alternate;
}
.scn-forest-row-cabin-ambush .cabin-exterior {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 55%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.8);
}
.scn-forest-row-cabin-ambush .outhouse {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  transform: perspective(300px) rotateY(10deg);
  animation: frc-outhouse 8s ease-in-out infinite;
}
.scn-forest-row-cabin-ambush .scratch-marks {
  position: absolute; bottom: 14%; left: 44%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: frc-scratch 3s ease-in-out infinite alternate;
}
.scn-forest-row-cabin-ambush .bush-left {
  position: absolute; bottom: 0; left: 0; width: 25%; height: 35%;
  background: radial-gradient(ellipse at 30% 70%, #1a3a1a 0%, #0a1a0a 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: frc-bush 20s ease-in-out infinite alternate;
}
.scn-forest-row-cabin-ambush .bush-right {
  position: absolute; bottom: 0; right: 0; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 70% 80%, #1a3a1a 0%, #0a1a0a 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: frc-bush 20s ease-in-out infinite alternate-reverse;
}
.scn-forest-row-cabin-ambush .figure-crouch {
  position: absolute; bottom: 8%; left: 22%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.8);
  animation: frc-figure 6s ease-in-out infinite;
}
.scn-forest-row-cabin-ambush .moon {
  position: absolute; top: 5%; right: 15%; width: 8%; height: 8%;
  background: radial-gradient(circle, #e0e0ff 0%, #a0a0d0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,160,208,0.4);
  animation: frc-moon 30s linear infinite;
}
@keyframes frc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes frc-outhouse { 0% { transform:perspective(300px) rotateY(10deg); } 50% { transform:perspective(300px) rotateY(8deg); } 100% { transform:perspective(300px) rotateY(10deg); } }
@keyframes frc-scratch { 0% { opacity:0.3; transform:rotate(15deg) scale(1); } 50% { opacity:0.8; transform:rotate(17deg) scale(1.1); } 100% { opacity:0.3; transform:rotate(15deg) scale(1); } }
@keyframes frc-bush { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.05) translateY(-4px); } 100% { transform:scale(1) translateY(0); } }
@keyframes frc-figure { 0% { transform:scale(0.8) translateX(0); } 25% { transform:scale(0.85) translateX(3px); } 50% { transform:scale(0.8) translateX(6px); } 75% { transform:scale(0.85) translateX(3px); } 100% { transform:scale(0.8) translateX(0); } }
@keyframes frc-moon { 0% { transform:translateX(0); } 100% { transform:translateX(-20px); } }

/* Neligan interrogation */
.scn-neligan-interrogation-cairns-summoned {
  background: linear-gradient(180deg, #f0e6d3 0%, #e0d0b8 40%, #c8b89a 100%),
              radial-gradient(ellipse at 60% 20%, #fff8ec 0%, transparent 60%);
}
.scn-neligan-interrogation-cairns-summoned .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b89a 100%);
}
.scn-neligan-interrogation-cairns-summoned .window-light {
  position: absolute; top: 15%; left: 12%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 50%, #fff4d0 0%, #e8d8b0 60%, transparent 100%);
  box-shadow: 0 0 40px 20px rgba(255,244,208,0.3);
  animation: nic-light 10s ease-in-out infinite alternate;
}
.scn-neligan-interrogation-cairns-summoned .table {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 14%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b3e 100%);
  border-radius: 6px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.scn-neligan-interrogation-cairns-summoned .logbook {
  position: absolute; bottom: 30%; left: 35%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #c8a86a 0%, #a0885a 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-neligan-interrogation-cairns-summoned .torn-pages {
  position: absolute; bottom: 30%; left: 48%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #d8d0b0 0%, #c0b8a0 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: nic-pages 4s ease-in-out infinite alternate;
}
.scn-neligan-interrogation-cairns-summoned .neligan {
  position: absolute; bottom: 10%; left: 25%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nic-neligan 7s ease-in-out infinite;
}
.scn-neligan-interrogation-cairns-summoned .hopkins {
  position: absolute; bottom: 10%; right: 30%; width: 12%; height: 26%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-neligan-interrogation-cairns-summoned .holmes-shadow {
  position: absolute; bottom: 8%; right: 12%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  opacity: 0.5;
  animation: nic-shadow 12s ease-in-out infinite;
}
@keyframes nic-light { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.9; transform:scale(0.98); } }
@keyframes nic-pages { 0% { transform:rotate(10deg) translateY(0); opacity:0.5; } 50% { transform:rotate(12deg) translateY(-2px); opacity:0.9; } 100% { transform:rotate(10deg) translateY(0); opacity:0.5; } }
@keyframes nic-neligan { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(1deg); } 50% { transform:translateX(-1px) rotate(-1deg); } 75% { transform:translateX(1px) rotate(0deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes nic-shadow { 0% { opacity:0.3; transform:scale(0.95); } 50% { opacity:0.6; transform:scale(1.05); } 100% { opacity:0.3; transform:scale(0.95); } }

/* milverton-burglary-confrontation - tense, dark */
.scn-milverton-burglary-confrontation {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1220 40%, #0d0d1f 100%),
              radial-gradient(ellipse at 30% 80%, #2a1a2a 0%, transparent 60%);
}
.scn-milverton-burglary-confrontation .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #050510 0%, #12102a 60%);
  animation: milv1-sky 15s ease-in-out infinite alternate;
}
.scn-milverton-burglary-confrontation .shrubbery {
  position: absolute; bottom: 30%; left: 0; right: 60%; height: 20%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0f1f0f 100%);
  border-radius: 60% 40% 0 0 / 80% 50% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
  animation: milv1-sway 8s ease-in-out infinite;
}
.scn-milverton-burglary-confrontation .window-frame {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 80px;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 4px solid #3a3a4a;
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(0,0,0,0.8);
}
.scn-milverton-burglary-confrontation .safe {
  position: absolute; bottom: 22%; left: 45%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 6px;
  transform: rotate(5deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
  animation: milv1-safe 1s ease-in-out infinite alternate;
}
.scn-milverton-burglary-confrontation .letters {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: milv1-letters 3s ease-in-out infinite;
}
.scn-milverton-burglary-confrontation .holmes-figure {
  position: absolute; bottom: 20%; left: 20%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: milv1-crouch 6s ease-in-out infinite;
}
.scn-milverton-burglary-confrontation .woman-silhouette {
  position: absolute; bottom: 30%; right: 15%; width: 14px; height: 42px;
  background: linear-gradient(180deg, #1c1c2e 0%, #0c0c1a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform: scaleX(-1);
  animation: milv1-turn 4s ease-in-out infinite alternate;
}
.scn-milverton-burglary-confrontation .lamp-glow {
  position: absolute; bottom: 35%; right: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd070 0%, #804020 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,200,80,0.3);
  animation: milv1-lamp 2s ease-in-out infinite alternate;
}
@keyframes milv1-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes milv1-sway { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes milv1-safe { 0% { box-shadow: 0 4px 10px rgba(0,0,0,0.7); } 100% { box-shadow: 0 4px 20px rgba(0,0,0,0.9); } }
@keyframes milv1-letters { 0% { transform: rotate(-10deg) translateY(0); opacity: 0.9; } 50% { transform: rotate(-8deg) translateY(-2px); opacity: 1; } 100% { transform: rotate(-12deg) translateY(0); opacity: 0.8; } }
@keyframes milv1-crouch { 0% { transform: translateY(0) rotate(2deg); } 30% { transform: translateY(-3px) rotate(-2deg); } 60% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes milv1-turn { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(5px); } 100% { transform: scaleX(-1) translateX(-3px); } }
@keyframes milv1-lamp { 0% { opacity: 0.6; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }

/* milverton-aftermath-bell-rope-clue - dark, bright-interior */
.scn-milverton-aftermath-bell-rope-clue {
  background: linear-gradient(180deg, #2e2216 0%, #4a3822 40%, #2a1e12 100%),
              radial-gradient(ellipse at 70% 40%, #5a4a32 0%, transparent 60%);
}
.scn-milverton-aftermath-bell-rope-clue .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e0e 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-milverton-aftermath-bell-rope-clue .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-milverton-aftermath-bell-rope-clue .bell-rope {
  position: absolute; top: 15%; left: 40%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #b8a080 0%, #806040 100%);
  border-radius: 2px;
  transform-origin: top center;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: milv2-rope 4s ease-in-out infinite;
}
.scn-milverton-aftermath-bell-rope-clue .body-cover {
  position: absolute; bottom: 5%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-milverton-aftermath-bell-rope-clue .bust-mid {
  position: absolute; bottom: 40%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.95);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.4);
}
.scn-milverton-aftermath-bell-rope-clue .bust-far {
  position: absolute; bottom: 38%; left: 65%; width: 15px; height: 22px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.7);
  animation: milv2-bust 20s ease-in-out infinite;
}
.scn-milverton-aftermath-bell-rope-clue .lamp-light {
  position: absolute; bottom: 45%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe8b0 0%, #c88840 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(200,136,64,0.4);
  animation: milv2-lamp 3s ease-in-out infinite alternate;
}
.scn-milverton-aftermath-bell-rope-clue .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}
@keyframes milv2-rope { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes milv2-bust { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes milv2-lamp { 0% { opacity: 0.8; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }

/* lady-brackenstall-lie-crocker-traced - tense, bright-interior */
.scn-lady-brackenstall-lie-crocker-traced {
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 50%, #9a8870 100%),
              radial-gradient(ellipse at 20% 60%, #c8b89a 0%, transparent 70%);
}
.scn-lady-brackenstall-lie-crocker-traced .parlor-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,248,230,0.4) 0%, transparent 100%);
}
.scn-lady-brackenstall-lie-crocker-traced .desk {
  position: absolute; bottom: 20%; left: 10%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateX(10deg);
}
.scn-lady-brackenstall-lie-crocker-traced .lady-silhouette {
  position: absolute; bottom: 25%; left: 15%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(2deg);
  animation: ladyb-sway 5s ease-in-out infinite;
}
.scn-lady-brackenstall-lie-crocker-traced .holmes-figure {
  position: absolute; bottom: 20%; right: 20%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a2218 0%, #181208 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: ladyb-holmes 7s ease-in-out infinite;
}
.scn-lady-brackenstall-lie-crocker-traced .papers {
  position: absolute; bottom: 23%; left: 18%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: ladyb-papers 9s ease-in-out infinite alternate;
}
.scn-lady-brackenstall-lie-crocker-traced .candle {
  position: absolute; bottom: 28%; left: 45%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0e0b0 0%, #c09850 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 0 20px 4px rgba(255,200,80,0.3);
  animation: ladyb-candle 2s ease-in-out infinite alternate;
}
.scn-lady-brackenstall-lie-crocker-traced .wax-drip {
  position: absolute; bottom: 28%; left: 46%; width: 2px; height: 6px;
  background: #c8b080;
  border-radius: 1px;
  animation: ladyb-wax 3s ease-in-out infinite;
}
@keyframes ladyb-sway { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(3px); } 100% { transform: rotate(1deg) translateX(-2px); } }
@keyframes ladyb-holmes { 0% { transform: scaleX(-1) translateX(0) rotate(-1deg); } 50% { transform: scaleX(-1) translateX(4px) rotate(1deg); } 100% { transform: scaleX(-1) translateX(-2px) rotate(-1deg); } }
@keyframes ladyb-papers { 0% { transform: rotate(-15deg) translateY(0); opacity: 0.9; } 50% { transform: rotate(-13deg) translateY(-2px); opacity: 1; } 100% { transform: rotate(-17deg) translateY(0); opacity: 0.8; } }
@keyframes ladyb-candle { 0% { opacity: 0.8; transform: scaleY(0.95); } 100% { opacity: 1; transform: scaleY(1.05); } }
@keyframes ladyb-wax { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }

/* pearl-safe-beppo-captured - calm, bright-interior */
.scn-pearl-safe-beppo-captured {
  background: linear-gradient(180deg, #d0c8a0 0%, #b8a888 50%, #a09070 100%),
              radial-gradient(ellipse at 50% 30%, #e0d8b8 0%, transparent 60%);
}
.scn-pearl-safe-beppo-captured .study-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-pearl-safe-beppo-captured .bookcase {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 12px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateY(-15deg);
}
.scn-pearl-safe-beppo-captured .desk {
  position: absolute; bottom: 12%; left: 10%; width: 100px; height: 15px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: perspective(300px) rotateX(5deg);
}
.scn-pearl-safe-beppo-captured .holmes-hand {
  position: absolute; bottom: 18%; left: 15%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #d0b8a0 0%, #a89078 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 50% 50%;
  transform: rotate(30deg);
  animation: pearl-hand 6s ease-in-out infinite;
}
.scn-pearl-safe-beppo-captured .pearl-glow {
  position: absolute; bottom: 22%; left: 18%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff8f0 0%, #f0e0c0 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(240,224,192,0.5), 0 0 40px 12px rgba(240,224,192,0.2);
  animation: pearl-pearl 3s ease-in-out infinite alternate;
}
.scn-pearl-safe-beppo-captured .beppo-shadow {
  position: absolute; bottom: 0; left: 40%; width: 60px; height: 30px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.6) 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
}
.scn-pearl-safe-beppo-captured .lamp {
  position: absolute; bottom: 40%; right: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c0a878 100%);
  border-radius: 10px;
  box-shadow: 0 0 30px 8px rgba(200,180,140,0.3);
  animation: pearl-lamp 4s ease-in-out infinite alternate;
}
.scn-pearl-safe-beppo-captured .clock {
  position: absolute; top: 10%; right: 10%; width: 20px; height: 20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.5);
}
@keyframes pearl-hand { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(32deg) translateY(-2px); } 100% { transform: rotate(28deg) translateY(0); } }
@keyframes pearl-pearl { 0% { opacity: 0.85; box-shadow: 0 0 15px 4px rgba(240,224,192,0.4), 0 0 30px 8px rgba(240,224,192,0.2); } 100% { opacity: 1; box-shadow: 0 0 25px 8px rgba(255,248,240,0.6), 0 0 50px 16px rgba(240,224,192,0.3); } }
@keyframes pearl-lamp { 0% { opacity: 0.8; transform: scale(0.95); } 100% { opacity: 1; transform: scale(1.05); } }

/* Scene: item-thumbprint-evidence — tense, bright-interior */
.scn-item-thumbprint-evidence {
  background:
    linear-gradient(180deg, #f5efe0 0%, #e8dccc 30%, #d4c8b8 60%, #c0b4a4 100%),
    radial-gradient(ellipse at 30% 20%, #fff8f0 0%, transparent 70%);
}
.scn-item-thumbprint-evidence .table-surface {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(140deg, #c8b898 0%, #a89070 40%, #8a7050 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 30px rgba(0,0,0,0.3);
  animation: ti-table 12s ease-in-out infinite alternate;
}
.scn-item-thumbprint-evidence .card-evidence {
  position: absolute; bottom: 30%; left: 22%; width: 26%; height: 20%;
  background: linear-gradient(135deg, #f0ead0 0%, #e0d8b8 50%, #c8c0a0 100%);
  border-radius: 4%;
  box-shadow: 0 4px 15px rgba(0,0,0,0.25);
  transform: rotate(-2deg);
  animation: ti-card 8s ease-in-out infinite;
}
.scn-item-thumbprint-evidence .thumb-print {
  position: absolute; bottom: 38%; left: 32%; width: 4%; height: 6%;
  background: radial-gradient(circle at 40% 35%, #5a4a3a 0%, #3a2a1a 60%, transparent 100%);
  border-radius: 50%;
  opacity: 0.7;
  animation: ti-thumb 4s ease-in-out infinite alternate;
}
.scn-item-thumbprint-evidence .lens-glass {
  position: absolute; bottom: 25%; left: 55%; width: 14%; height: 18%;
  background: radial-gradient(circle at 35% 30%, #e8f0f8 0%, #b8c8d8 40%, #8898a8 100%);
  border-radius: 50%;
  border: 2px solid #6a7a8a;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2), inset 0 -4px 8px rgba(0,0,0,0.1);
  transform: rotate(12deg);
  animation: ti-lens 10s ease-in-out infinite;
}
.scn-item-thumbprint-evidence .lens-handle {
  position: absolute; bottom: 22%; left: 68%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(12deg) translateY(4px);
  animation: ti-handle 10s ease-in-out infinite;
}
.scn-item-thumbprint-evidence .shadow-sharp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.12) 100%);
  animation: ti-shadow 8s ease-in-out infinite alternate;
}
.scn-item-thumbprint-evidence .highlight-spot {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,248,240,0.6) 0%, transparent 70%);
  opacity: 0.5;
  animation: ti-spot 6s ease-in-out infinite alternate;
}
@keyframes ti-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes ti-card { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1.5deg) translateY(-2px); } }
@keyframes ti-thumb { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }
@keyframes ti-lens { 0%,100% { transform: rotate(12deg) scale(1); } 50% { transform: rotate(14deg) scale(1.02); } }
@keyframes ti-handle { 0%,100% { transform: rotate(12deg) translateY(4px); } 50% { transform: rotate(14deg) translateY(2px); } }
@keyframes ti-shadow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ti-spot { 0% { opacity: 0.3; transform: translateX(-5px); } 50% { opacity: 0.6; transform: translateX(5px); } 100% { opacity: 0.4; transform: translateX(-3px); } }

/* Scene: oldacre-revealed-alive — dark, firelit */
.scn-oldacre-revealed-alive {
  background:
    linear-gradient(180deg, #1a0e05 0%, #2a1808 20%, #1e1004 60%, #0a0502 100%),
    radial-gradient(ellipse at 50% 80%, #c06020 0%, transparent 60%);
}
.scn-oldacre-revealed-alive .corridor-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #3a2a18 0%, #2a1a0a 30%, #1a0e05 70%, #2a1a0a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: or-wall 15s ease-in-out infinite alternate;
}
.scn-oldacre-revealed-alive .floor-shadow {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%);
  animation: or-floor 10s ease-in-out infinite alternate;
}
.scn-oldacre-revealed-alive .hidden-door {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(135deg, #4a3a28 0%, #2a1a0a 50%, #1a0e04 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 8px 20px rgba(0,0,0,0.7);
  transform-origin: left center;
  animation: or-door 6s ease-in-out infinite;
}
.scn-oldacre-revealed-alive .door-handle {
  position: absolute; bottom: 48%; left: 52%; width: 3%; height: 5%;
  background: radial-gradient(circle at 30% 30%, #b08040 0%, #704820 60%);
  border-radius: 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: or-handle 6s ease-in-out infinite;
}
.scn-oldacre-revealed-alive .figure-oldacre {
  position: absolute; bottom: 28%; left: 40%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #3a2818 0%, #1a0e04 30%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  transform: translateX(-50%);
  animation: or-figure 4s ease-in-out infinite;
}
.scn-oldacre-revealed-alive .fire-glow {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,80,20,0.6) 0%, rgba(200,80,20,0.2) 40%, transparent 70%);
  animation: or-fire 2s ease-in-out infinite alternate;
}
.scn-oldacre-revealed-alive .fire-sparks {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 30%;
  background: radial-gradient(circle at 20% 40%, rgba(255,160,40,0.3) 0%, transparent 50%);
  filter: blur(4px);
  animation: or-sparks 1.5s ease-in-out infinite alternate;
}
.scn-oldacre-revealed-alive .ceiling-dark {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #050201 0%, #0a0502 40%, transparent 100%);
  animation: or-ceiling 20s ease-in-out infinite alternate;
}
@keyframes or-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes or-floor { 0%,100% { opacity: 0.7; } 50% { opacity: 0.9; } }
@keyframes or-door { 0%,100% { transform: rotateY(0deg); } 30% { transform: rotateY(-15deg); } 60% { transform: rotateY(-30deg); } 80% { transform: rotateY(-20deg); } }
@keyframes or-handle { 0%,100% { transform: scale(1); } 50% { transform: scale(1.2); } }
@keyframes or-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-45%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(-55%) translateY(-2px) rotate(1deg); } }
@keyframes or-fire { 0% { opacity: 0.5; transform: scaleY(0.95); } 50% { opacity: 0.8; transform: scaleY(1.05); } 100% { opacity: 0.6; transform: scaleY(1); } }
@keyframes or-sparks { 0% { opacity: 0.3; transform: translateY(5px); } 50% { opacity: 0.7; transform: translateY(-5px); } 100% { opacity: 0.4; transform: translateY(3px); } }
@keyframes or-ceiling { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* Scene: item-dancing-men-paper — tense, dim-interior */
.scn-item-dancing-men-paper {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 20%, #1e1e2e 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 40% 30%, #3a3a4e 0%, transparent 60%);
}
.scn-item-dancing-men-paper .desk-top {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 55%;
  background: linear-gradient(140deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.4);
  animation: dm-desk 10s ease-in-out infinite alternate;
}
.scn-item-dancing-men-paper .paper-sheet {
  position: absolute; bottom: 30%; left: 28%; width: 34%; height: 22%;
  background: linear-gradient(135deg, #e8e0c8 0%, #d4ccb0 50%, #c0b898 100%);
  border-radius: 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transform: rotate(1deg);
  animation: dm-paper 7s ease-in-out infinite;
}
.scn-item-dancing-men-paper .dancing-men {
  position: absolute; bottom: 38%; width: 4%; height: 8%;
  background: #2a1a0a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.85;
  animation: dm-figure 5s ease-in-out infinite;
}
.scn-item-dancing-men-paper .char-1 { left: 32%; animation-delay: 0s; }
.scn-item-dancing-men-paper .char-2 { left: 38%; animation-delay: 0.3s; }
.scn-item-dancing-men-paper .char-3 { left: 44%; animation-delay: 0.6s; }
.scn-item-dancing-men-paper .lamp-base {
  position: absolute; bottom: 22%; left: 68%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: dm-lamp-base 8s ease-in-out infinite alternate;
}
.scn-item-dancing-men-paper .lamp-glow {
  position: absolute; bottom: 30%; left: 60%; width: 22%; height: 25%;
  background: radial-gradient(circle at 50% 50%, rgba(240,200,120,0.5) 0%, rgba(240,200,120,0.15) 40%, transparent 70%);
  animation: dm-glow 3s ease-in-out infinite alternate;
}
.scn-item-dancing-men-paper .shadow-desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.25) 100%);
  animation: dm-shadow 9s ease-in-out infinite alternate;
}
@keyframes dm-desk { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes dm-paper { 0%,100% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(0.5deg) translateY(-2px); } }
@keyframes dm-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(10deg); } 50% { transform: translateY(-1px) rotate(-5deg); } 75% { transform: translateY(-4px) rotate(8deg); } }
@keyframes dm-lamp-base { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dm-glow { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes dm-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* Scene: cubitt-tragedy-discovery — dark, dim-interior */
.scn-cubitt-tragedy-discovery {
  background:
    linear-gradient(180deg, #0e0a12 0%, #1a1420 30%, #14101a 60%, #0a060e 100%),
    radial-gradient(ellipse at 50% 40%, #2a2030 0%, transparent 70%);
}
.scn-cubitt-tragedy-discovery .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2a2030 0%, #1a1420 40%, #0e0a12 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: ct-wall 12s ease-in-out infinite alternate;
}
.scn-cubitt-tragedy-discovery .body-cubitt {
  position: absolute; bottom: 18%; left: 25%; width: 22%; height: 32%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 40%, #0a050a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-15deg);
  box-shadow: 0 6px 18px rgba(0,0,0,0.5);
  animation: ct-cubitt 6s ease-in-out infinite;
}
.scn-cubitt-tragedy-discovery .body-elsie {
  position: absolute; bottom: 22%; left: 52%; width: 20%; height: 28%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 40%, #1a0e1a 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform: rotate(10deg);
  box-shadow: 0 4px 14px rgba(0,0,0,0.4);
  animation: ct-elsie 7s ease-in-out infinite;
}
.scn-cubitt-tragedy-discovery .pistol-drop {
  position: absolute; bottom: 12%; left: 45%; width: 3%; height: 5%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 20%;
  transform: rotate(45deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ct-pistol 9s ease-in-out infinite alternate;
}
.scn-cubitt-tragedy-discovery .pool-dark {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #1a0e1a 0%, #0a050a 60%, transparent 100%);
  border-radius: 50%;
  opacity: 0.6;
  animation: ct-pool 8s ease-in-out infinite alternate;
}
.scn-cubitt-tragedy-discovery .window-dim {
  position: absolute; top: 10%; left: 60%; width: 25%; height: 35%;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 50%, #0e0e1a 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.2);
  opacity: 0.5;
  animation: ct-window 14s ease-in-out infinite alternate;
}
.scn-cubitt-tragedy-discovery .curtain-drape {
  position: absolute; top: 5%; left: 58%; width: 4%; height: 45%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 50%, #0e060e 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-2deg);
  opacity: 0.7;
  animation: ct-curtain 11s ease-in-out infinite;
}
@keyframes ct-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ct-cubitt { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-2px); } }
@keyframes ct-elsie { 0%,100% { transform: rotate(10deg) translateY(0) scale(1); } 50% { transform: rotate(8deg) translateY(-3px) scale(1.02); } }
@keyframes ct-pistol { 0% { opacity: 0.4; transform: rotate(45deg) translateY(0); } 50% { opacity: 0.7; transform: rotate(50deg) translateY(-1px); } 100% { opacity: 0.5; transform: rotate(40deg) translateY(0); } }
@keyframes ct-pool { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(0.95); } }
@keyframes ct-window { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 0.6; transform: scale(1.02); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes ct-curtain { 0%,100% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(-1deg) scaleY(1.05); } }

/* Scene: anna-revealed-nihilist-betrayal (dim interior, dark mood) */
.scn-anna-revealed-nihilist-betrayal {
  background:
    linear-gradient(180deg, #1c1917 0%, #2d2a24 40%, #423d35 100%),
    radial-gradient(ellipse at 50% 100%, #2d2a24 0%, transparent 70%);
}
.scn-anna-revealed-nihilist-betrayal .wall-back {
  position: absolute; inset: 0; background: #1c1917; opacity: 0.9;
  animation: anb-pulse 8s ease-in-out infinite;
}
.scn-anna-revealed-nihilist-betrayal .bookshelf {
  position: absolute; left: 20%; top: 10%; width: 60%; height: 70%;
  background: linear-gradient(180deg, #4a372f 0%, #2f221d 50%, #1a110e 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: anb-shelf 14s linear infinite;
}
.scn-anna-revealed-nihilist-betrayal .secret-door {
  position: absolute; left: 45%; top: 20%; width: 10%; height: 50%;
  background: linear-gradient(90deg, #3a2a24 0%, #1f1612 100%);
  border-radius: 2px; box-shadow: 0 0 20px rgba(0,0,0,0.6);
  transform-origin: left center; animation: anb-door 6s ease-in-out infinite alternate;
}
.scn-anna-revealed-nihilist-betrayal .figure-anna {
  position: absolute; left: 36%; bottom: 25%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2d2a 0%, #1f1815 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 8px rgba(230,200,150,0.15);
  animation: anb-anna 5s ease-in-out infinite alternate;
}
.scn-anna-revealed-nihilist-betrayal .shadow-anna {
  position: absolute; left: 36%; bottom: 18%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6), transparent);
  filter: blur(4px); animation: anb-shadow 5s ease-in-out infinite alternate;
}
.scn-anna-revealed-nihilist-betrayal .book-fall {
  position: absolute; left: 30%; top: 40%; width: 8px; height: 12px;
  background: #5c3f31; border-radius: 1px; transform: rotate(20deg);
  animation: anb-bookfall 3s ease-in-out infinite;
}
.scn-anna-revealed-nihilist-betrayal .dust-motes {
  position: absolute; inset: 0; background: radial-gradient(circle at 20% 30%, rgba(200,180,140,0.08), transparent 70%);
  animation: anb-dust 12s ease-in-out infinite alternate;
}
.scn-anna-revealed-nihilist-betrayal .faint-light {
  position: absolute; left: 48%; top: 15%; width: 6%; height: 8%;
  background: radial-gradient(circle, rgba(220,200,160,0.3), transparent 80%);
  filter: blur(10px); animation: anb-light 7s ease-in-out infinite alternate;
}
@keyframes anb-pulse { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes anb-shelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes anb-door { 0% { transform: rotate(0deg) scaleX(1); } 100% { transform: rotate(12deg) scaleX(0.95); } }
@keyframes anb-anna { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes anb-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(1); } }
@keyframes anb-bookfall { 0% { transform: translateY(0) rotate(20deg); opacity: 1; } 50% { transform: translateY(20px) rotate(30deg); opacity: 0.5; } 100% { transform: translateY(0) rotate(20deg); opacity: 1; } }
@keyframes anb-dust { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes anb-light { 0% { opacity: 0.2; transform: scale(0.8); } 100% { opacity: 0.5; transform: scale(1.2); } }

/* Scene: pince-nez-proof-suicide (dim interior, dark mood) */
.scn-pince-nez-proof-suicide {
  background:
    linear-gradient(180deg, #1e1b1a 0%, #2f2a27 40%, #433c38 100%),
    radial-gradient(ellipse at 30% 70%, #2f2a27 0%, transparent 60%);
}
.scn-pince-nez-proof-suicide .room-wall {
  position: absolute; inset: 0; background: #1a1816;
  animation: pns-wall 10s ease-in-out infinite alternate;
}
.scn-pince-nez-proof-suicide .bookcase-recess {
  position: absolute; right: 10%; top: 15%; width: 25%; height: 70%;
  background: linear-gradient(180deg, #4a372f 0%, #2f221d 50%, #1a110e 100%);
  border-radius: 4px; box-shadow: inset 0 0 40px rgba(0,0,0,0.9);
  animation: pns-shadow 6s ease-in-out infinite alternate;
}
.scn-pince-nez-proof-suicide .dying-man {
  position: absolute; left: 30%; bottom: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3d302b 0%, #231917 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pns-dying 4s ease-in-out infinite;
}
.scn-pince-nez-proof-suicide .woman-confessor {
  position: absolute; right: 30%; bottom: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3d302b 0%, #231917 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform: scaleX(-1);
  animation: pns-woman 5s ease-in-out infinite alternate;
}
.scn-pince-nez-proof-suicide .pince-nez {
  position: absolute; left: 32%; bottom: 55%; width: 14px; height: 6px;
  background: radial-gradient(circle, #f0d0a0 20%, #c0a080 60%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 6px rgba(240,208,160,0.3);
  animation: pns-glasses 3s ease-in-out infinite alternate;
}
.scn-pince-nez-proof-suicide .blood-drip {
  position: absolute; left: 28%; bottom: 40%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #6e1a1a 0%, #3d0f0f 100%);
  border-radius: 2px; animation: pns-blood 4s ease-in-out infinite;
}
.scn-pince-nez-proof-suicide .shadow-recess {
  position: absolute; right: 10%; top: 85%; width: 25%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8), transparent);
  filter: blur(8px);
}
@keyframes pns-wall { 0% { opacity: 0.9; } 50% { opacity: 0.95; } 100% { opacity: 0.9; } }
@keyframes pns-shadow { 0% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9); } 50% { box-shadow: inset 0 0 60px rgba(0,0,0,0.6); } 100% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9); } }
@keyframes pns-dying { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); opacity: 0.8; } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pns-woman { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-2px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes pns-glasses { 0% { opacity: 0.2; transform: translateY(0) rotate(0deg); } 50% { opacity: 0.8; transform: translateY(-1px) rotate(5deg); } 100% { opacity: 0.2; transform: translateY(0) rotate(0deg); } }
@keyframes pns-blood { 0% { transform: translateY(0); opacity: 0.7; } 50% { transform: translateY(4px); opacity: 1; } 100% { transform: translateY(0); opacity: 0.7; } }

/* Scene: pince-nez-case-lesson-staunton-search (bright interior, tense mood) */
.scn-pince-nez-case-lesson-staunton-search {
  background:
    linear-gradient(180deg, #f4ebe5 0%, #e3d6cb 60%, #ccbba8 100%),
    radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 70%);
}
.scn-pince-nez-case-lesson-staunton-search .bright-wall {
  position: absolute; inset: 0; background: #f4ebe5; opacity: 0.8;
  animation: pnl-wall 12s ease-in-out infinite alternate;
}
.scn-pince-nez-case-lesson-staunton-search .desk {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #b8a392 0%, #8a7565 100%);
  border-radius: 4px; box-shadow: 0 10px 30px rgba(0,0,0,0.15);
  animation: pnl-desk 8s ease-in-out infinite alternate;
}
.scn-pince-nez-case-lesson-staunton-search .phial {
  position: absolute; left: 40%; bottom: 28%; width: 10px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #d4b896 30%, #a88d6f 80%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,180,140,0.4);
  animation: pnl-phial 3s ease-in-out infinite;
}
.scn-pince-nez-case-lesson-staunton-search .holmes-figure {
  position: absolute; left: 20%; bottom: 30%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #2a2420 0%, #14100e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform: rotate(-3deg);
  animation: pnl-holmes 5s ease-in-out infinite alternate;
}
.scn-pince-nez-case-lesson-staunton-search .shadow-holmes {
  position: absolute; left: 20%; bottom: 22%; width: 28px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3), transparent);
  filter: blur(4px);
  animation: pnl-shadow 5s ease-in-out infinite alternate;
}
.scn-pince-nez-case-lesson-staunton-search .pince-nez-glow {
  position: absolute; left: 45%; bottom: 55%; width: 16px; height: 8px;
  background: radial-gradient(circle, #f5dcb8 20%, #d4b896 60%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 10px rgba(245,220,184,0.5);
  animation: pnl-glow 2s ease-in-out infinite alternate;
}
.scn-pince-nez-case-lesson-staunton-search .paper-scatter {
  position: absolute; left: 30%; bottom: 35%; width: 12px; height: 16px;
  background: #e8dcd0; border-radius: 1px; transform: rotate(12deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: pnl-paper 6s ease-in-out infinite;
}
@keyframes pnl-wall { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes pnl-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes pnl-phial { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pnl-holmes { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes pnl-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.3); } 100% { opacity: 0.4; transform: scaleX(1); } }
@keyframes pnl-glow { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.7; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.8); } }
@keyframes pnl-paper { 0% { transform: translateY(0) rotate(12deg); } 50% { transform: translateY(3px) rotate(15deg); } 100% { transform: translateY(0) rotate(12deg); } }

/* Scene: armstrong-conflict-carriage-surveillance (tense, bright interior) */
.scn-armstrong-conflict-carriage-surveillance {
  background:
    linear-gradient(180deg, #e8dfd6 0%, #d6cbbf 50%, #c2b5a6 100%),
    radial-gradient(ellipse at 30% 80%, #d6cbbf 0%, transparent 60%);
}
.scn-armstrong-conflict-carriage-surveillance .carriage-interior {
  position: absolute; inset: 15% 10%; background: linear-gradient(135deg, #a69484 0%, #7d6b5c 100%);
  border-radius: 8px; box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: acs-carriage 10s ease-in-out infinite alternate;
}
.scn-armstrong-conflict-carriage-surveillance .window-outside {
  position: absolute; right: 12%; top: 20%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #cfd8e0 0%, #a3b5c7 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.1);
  animation: acs-window 12s linear infinite;
}
.scn-armstrong-conflict-carriage-surveillance .armstrong-figure {
  position: absolute; left: 30%; bottom: 20%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #3a2d2a 0%, #201815 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: acs-armstrong 5s ease-in-out infinite alternate;
}
.scn-armstrong-conflict-carriage-surveillance .holmes-figure {
  position: absolute; right: 30%; bottom: 22%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #2a2420 0%, #14100e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform: scaleX(-1);
  animation: acs-holmes 4s ease-in-out infinite alternate;
}
.scn-armstrong-conflict-carriage-surveillance .receipt-bill {
  position: absolute; left: 25%; bottom: 45%; width: 14px; height: 18px;
  background: #ede3d8; border: 1px solid #b8a392; border-radius: 1px;
  transform: rotate(-8deg);
  animation: acs-receipt 7s ease-in-out infinite;
}
.scn-armstrong-conflict-carriage-surveillance .shadow-fight {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3), transparent);
  filter: blur(6px);
  animation: acs-shadow 5s ease-in-out infinite alternate;
}
.scn-armstrong-conflict-carriage-surveillance .curtain-sway {
  position: absolute; right: 10%; top: 15%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #5a4e44 0%, #3d342c 100%);
  border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: acs-curtain 8s ease-in-out infinite alternate;
}
.scn-armstrong-conflict-carriage-surveillance .street-lamp {
  position: absolute; right: 10%; top: 30%; width: 10px; height: 14px;
  background: radial-gradient(circle, #f5d89a 20%, #c8a870 60%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 8px rgba(245,216,154,0.4);
  animation: acs-lamp 4s ease-in-out infinite alternate;
}
@keyframes acs-carriage { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.01); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }
@keyframes acs-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes acs-armstrong { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes acs-holmes { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-2px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes acs-receipt { 0% { transform: rotate(-8deg) translateY(0); opacity: 0.6; } 50% { transform: rotate(-5deg) translateY(2px); opacity: 1; } 100% { transform: rotate(-8deg) translateY(0); opacity: 0.6; } }
@keyframes acs-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.4); } 100% { opacity: 0.3; transform: scaleX(1); } }
@keyframes acs-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes acs-lamp { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.9); } }

/* item-cyclist-bicycle – overcast moor, crashed bicycle and tracks */
.scn-item-cyclist-bicycle { background: linear-gradient(180deg, #6b7a7e 0%, #4e5b5f 35%, #3a4548 70%), radial-gradient(ellipse at 50% 100%, #3a4548 0%, transparent 80%); }
.scn-item-cyclist-bicycle .moor-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #7d8b8f 0%, #5e6b6f 50%, #4a5659 100%); animation: icb-sky 16s ease-in-out infinite alternate; }
.scn-item-cyclist-bicycle .moor-ground { position:absolute; bottom:0; left:0; right:0; height:58%; background: linear-gradient(180deg, #4a5a4a 0%, #3a483a 40%, #2e3b2e 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: icb-ground 14s ease-in-out infinite alternate; }
.scn-item-cyclist-bicycle .bike-frame { position:absolute; bottom:30%; left:38%; width:48px; height:24px; background: linear-gradient(135deg, #3a3a3a 0%, #1e1e1e 100%); clip-path: polygon(0% 40%, 25% 0%, 55% 30%, 80% 0%, 100% 40%, 75% 100%, 55% 70%, 25% 100%); transform: rotate(-8deg); animation: icb-bike 6s ease-in-out infinite; }
.scn-item-cyclist-bicycle .bike-wheel-f { position:absolute; bottom:26%; left:46%; width:18px; height:18px; border: 3px solid #2a2a2a; border-radius: 50%; background: radial-gradient(circle at 50% 50%, #4a4a4a 0%, #2a2a2a 60%, transparent 70%); transform: rotate(0deg); animation: icb-spin-f 3s linear infinite; }
.scn-item-cyclist-bicycle .bike-wheel-r { position:absolute; bottom:26%; left:32%; width:18px; height:18px; border: 3px solid #2a2a2a; border-radius: 50%; background: radial-gradient(circle at 50% 50%, #4a4a4a 0%, #2a2a2a 60%, transparent 70%); transform: rotate(0deg); animation: icb-spin-r 3s linear infinite; }
.scn-item-cyclist-bicycle .track-palmer { position:absolute; bottom:18%; left:10%; width:80%; height:14px; background: repeating-linear-gradient(90deg, #3a4a3a 0px, #3a4a3a 4px, transparent 4px, transparent 8px) 0 0 / 20px 100%; opacity: .6; animation: icb-track-p 10s linear infinite; }
.scn-item-cyclist-bicycle .track-dunlop { position:absolute; bottom:22%; left:8%; width:70%; height:10px; background: repeating-linear-gradient(90deg, #4a5a4a 0px, #4a5a4a 4px, transparent 4px, transparent 8px) 0 0 / 16px 100%; opacity: .45; transform: rotate(3deg); animation: icb-track-d 12s linear infinite; }
.scn-item-cyclist-bicycle .blood-gorse { position:absolute; bottom:32%; left:48%; width:12px; height:14px; background: radial-gradient(ellipse, #7a3a3a 0%, #5e2a2a 40%, transparent 70%); border-radius: 50% 20% 50% 20%; filter: blur(1px); animation: icb-blood 4s ease-in-out infinite; }
.scn-item-cyclist-bicycle .figure-holmes { position:absolute; bottom:26%; left:56%; width:16px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: icb-holmes 7s ease-in-out infinite; }
@keyframes icb-sky { 0% { opacity: .75 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes icb-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes icb-bike { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-2px) } }
@keyframes icb-spin-f { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes icb-spin-r { 0% { transform: rotate(0deg) } 100% { transform: rotate(-360deg) } }
@keyframes icb-track-p { 0% { background-position: 0 0 } 100% { background-position: 80px 0 } }
@keyframes icb-track-d { 0% { background-position: 0 0 } 100% { background-position: 64px 0 } }
@keyframes icb-blood { 0%,100% { transform: scale(1); opacity: .8 } 50% { transform: scale(1.2); opacity: 1 } }
@keyframes icb-holmes { 0% { transform: translateX(0) rotate(-1deg) } 33% { transform: translateX(-4px) rotate(1deg) } 66% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }

/* fighting-cock-inn-clues – dim interior, cow tracks, surly landlord */
.scn-fighting-cock-inn-clues { background: linear-gradient(180deg, #3a2e24 0%, #2a2018 40%, #1e1612 100%), radial-gradient(ellipse at 30% 80%, #4a3a2a 0%, transparent 70%); }
.scn-fighting-cock-inn-clues .inn-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3e3228 0%, #2e241e 60%, #1e1814 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.5); animation: fci-wall 20s ease-in-out infinite alternate; }
.scn-fighting-cock-inn-clues .inn-floor { position:absolute; bottom:0; left:0; right:0; height:38%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 6px, #3e3020 6px, #3e3020 12px), linear-gradient(180deg, #3e3020 0%, #2a1e14 100%); animation: fci-floor 8s ease-in-out infinite; }
.scn-fighting-cock-inn-clues .inn-fireplace { position:absolute; bottom:30%; left:12%; width:40px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 0 20px 6px rgba(180, 100, 40, .3); animation: fci-fire 4s ease-in-out infinite alternate; }
.scn-fighting-cock-inn-clues .cow-track-1 { position:absolute; bottom:20%; left:20%; width:8px; height:10px; background: #4a3a2a; border-radius: 40% 40% 30% 30%; opacity: .55; transform: rotate(15deg); animation: fci-track 7s ease-in-out infinite; }
.scn-fighting-cock-inn-clues .cow-track-2 { position:absolute; bottom:15%; left:32%; width:8px; height:10px; background: #4a3a2a; border-radius: 40% 40% 30% 30%; opacity: .5; transform: rotate(-10deg); animation: fci-track 9s ease-in-out infinite 1s; }
.scn-fighting-cock-inn-clues .cow-track-3 { position:absolute; bottom:25%; left:44%; width:8px; height:10px; background: #4a3a2a; border-radius: 40% 40% 30% 30%; opacity: .45; transform: rotate(5deg); animation: fci-track 11s ease-in-out infinite 2s; }
.scn-fighting-cock-inn-clues .figure-landlord { position:absolute; bottom:28%; left:22%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: fci-landlord 6s ease-in-out infinite; }
.scn-fighting-cock-inn-clues .figure-holmes-seated { position:absolute; bottom:22%; left:64%; width:18px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #141420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: scale(.85); animation: fci-holmes 8s ease-in-out infinite; }
@keyframes fci-wall { 0% { opacity: .85 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes fci-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes fci-fire { 0% { box-shadow: 0 0 16px 4px rgba(180,100,40,.25); } 50% { box-shadow: 0 0 28px 10px rgba(200,120,50,.5); } 100% { box-shadow: 0 0 20px 6px rgba(180,100,40,.3); } }
@keyframes fci-track { 0%,100% { opacity: .45; transform: translateY(0) rotate(0deg); } 50% { opacity: .65; transform: translateY(-1px) rotate(5deg); } }
@keyframes fci-landlord { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(2deg) } }
@keyframes fci-holmes { 0%,100% { transform: scale(.85) rotate(0) } 50% { transform: scale(.88) rotate(2deg) } }

/* wilder-meets-visitor-inn – dark hillside watch, distant inn */
.scn-wilder-meets-visitor-inn { background: linear-gradient(180deg, #0e1420 0%, #1a2030 40%, #2a2e3e 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #2a3a4a 0%, transparent 80%); }
.scn-wilder-meets-visitor-inn .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0e1420 0%, #1a2232 50%, #242e3e 100%); animation: wvi-sky 24s ease-in-out infinite alternate; }
.scn-wilder-meets-visitor-inn .distant-inn { position:absolute; bottom:35%; left:50%; width:40px; height:28px; transform: translateX(-50%); background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: wvi-inn 10s ease-in-out infinite; }
.scn-wilder-meets-visitor-inn .hillside-fore { position:absolute; bottom:0; left:0; right:0; height:38%; background: linear-gradient(180deg, #1a1e2a 0%, #0e1018 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: wvi-hill 18s ease-in-out infinite alternate; }
.scn-wilder-meets-visitor-inn .cyclist-wilder { position:absolute; bottom:24%; left:12%; width:6px; height:12px; background: #1a1a2a; border-radius: 40%; transform: rotate(10deg); animation: wvi-cycle 8s ease-in-out infinite; }
.scn-wilder-meets-visitor-inn .trap-horse { position:absolute; bottom:28%; left:68%; width:14px; height:10px; background: #2a2a3a; border-radius: 40% 30% 30% 40%; animation: wvi-trap 14s ease-in-out infinite; }
.scn-wilder-meets-visitor-inn .visitor-figure { position:absolute; bottom:28%; left:52%; width:8px; height:16px; background: #1e1e2e; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: wvi-visitor 12s ease-in-out infinite; }
.scn-wilder-meets-visitor-inn .watcher-a { position:absolute; bottom:10%; left:18%; width:12px; height:26px; background: linear-gradient(180deg, #0a0a12 0%, #040408 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform: scale(.8); animation: wvi-watch 6s ease-in-out infinite; }
.scn-wilder-meets-visitor-inn .watcher-b { position:absolute; bottom:10%; left:24%; width:12px; height:26px; background: linear-gradient(180deg, #0a0a12 0%, #040408 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform: scale(.75); animation: wvi-watch 7s ease-in-out infinite .5s; }
@keyframes wvi-sky { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .65 } }
@keyframes wvi-inn { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes wvi-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wvi-cycle { 0% { transform: translateX(0) rotate(10deg); opacity:.6 } 25% { transform: translateX(20px) rotate(8deg); opacity:.7 } 50% { transform: translateX(40px) rotate(10deg); opacity:.6 } 75% { transform: translateX(60px) rotate(8deg); opacity:.5 } 100% { transform: translateX(80px) rotate(10deg); opacity:.4 } }
@keyframes wvi-trap { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes wvi-visitor { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes wvi-watch { 0%,100% { transform: scale(.8) rotate(-2deg) } 50% { transform: scale(.85) rotate(2deg) } }

/* duke-confesses-wilder-secret – bright interior, two figures, desk */
.scn-duke-confesses-wilder-secret { background: linear-gradient(180deg, #c8b8a0 0%, #a89878 50%, #8a7a5e 100%), radial-gradient(ellipse at 30% 60%, #d8c8a8 0%, transparent 80%); }
.scn-duke-confesses-wilder-secret .room-bg { position:absolute; inset:0; background: linear-gradient(90deg, #b8a888 0%, #c8b898 40%, #b0a080 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.15); animation: dcws-room 20s ease-in-out infinite alternate; }
.scn-duke-confesses-wilder-secret .room-window { position:absolute; top:12%; right:8%; width:50px; height:70px; background: linear-gradient(180deg, #d8e8e8 0%, #b8d0d0 100%); border: 4px solid #6a5a4a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.4), 0 0 30px rgba(200,180,140,.3); animation: dcws-window 6s ease-in-out infinite; }
.scn-duke-confesses-wilder-secret .room-desk { position:absolute; bottom:18%; left:30%; width:60px; height:12px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: dcws-desk 10s ease-in-out infinite; }
.scn-duke-confesses-wilder-secret .figure-duke { position:absolute; bottom:16%; left:36%; width:20px; height:44px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 45% 45% 35% 35% / 55% 55% 38% 38%; transform-origin: bottom center; animation: dcws-duke 8s ease-in-out infinite; }
.scn-duke-confesses-wilder-secret .figure-holmes-standing { position:absolute; bottom:16%; left:54%; width:18px; height:44px; background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: dcws-holmes 7s ease-in-out infinite; }
.scn-duke-confesses-wilder-secret .sunbeam { position:absolute; top:10%; left:20%; width:30%; height:60%; background: linear-gradient(135deg, rgba(255,240,200,.18) 0%, transparent 60%); clip-path: polygon(0% 0%, 100% 0%, 40% 100%, 0% 100%); animation: dcws-beam 5s ease-in-out infinite alternate; }
.scn-duke-confesses-wilder-secret .shadow-stripe { position:absolute; bottom:14%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.12) 0%, transparent 100%); animation: dcws-shadow 12s ease-in-out infinite alternate; }
@keyframes dcws-room { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .92 } }
@keyframes dcws-window { 0%,100% { opacity: .85; box-shadow: inset 0 0 20px rgba(255,255,200,.3), 0 0 30px rgba(200,180,140,.25); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,200,.5), 0 0 40px rgba(200,180,140,.4); } }
@keyframes dcws-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dcws-duke { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-2px) rotate(2deg) } }
@keyframes dcws-holmes { 0%,100% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(2px) rotate(-1deg) } }
@keyframes dcws-beam { 0% { opacity: .6; transform: scaleX(1) } 100% { opacity: .9; transform: scaleX(1.08) } }
@keyframes dcws-shadow { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .5 } }

/* Scene 1: adair-murder-watson-grief (tense, bright interior) */
.scn-adair-murder-watson-grief {
  background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a8 50%, #a09888 100%),
              radial-gradient(ellipse at 80% 20%, #f0e8d8 0%, transparent 60%);
}
.scn-adair-murder-watson-grief .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d0c8b8 0%, #b8b0a0 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-adair-murder-watson-grief .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 60%;
  background: linear-gradient(135deg, #f4f0e0 0%, #d8d0c0 100%);
  border: 6px solid #8a7a6a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(255,255,240,0.3), 4px 4px 12px rgba(0,0,0,0.2);
  animation: adair-window 8s ease-in-out infinite alternate;
}
.scn-adair-murder-watson-grief .light-beam {
  position: absolute; top: 15%; left: 12%; width: 35%; height: 50%;
  background: linear-gradient(135deg, rgba(255,255,240,0.4) 0%, rgba(255,255,240,0) 100%);
  clip-path: polygon(0% 0%, 100% 20%, 70% 100%, 0% 80%);
  filter: blur(2px);
  animation: adair-beam 10s ease-in-out infinite alternate;
}
.scn-adair-murder-watson-grief .door {
  position: absolute; top: 5%; right: 10%; width: 20%; height: 90%;
  background: linear-gradient(90deg, #7a6a5a 0%, #6a5a4a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.2);
  transform: scaleX(0.95);
  animation: adair-door 6s ease-in-out infinite;
}
.scn-adair-murder-watson-grief .chair {
  position: absolute; bottom: 18%; left: 55%; width: 18%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-adair-murder-watson-grief .figure-watson {
  position: absolute; bottom: 20%; left: 56%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: adair-watson 4s ease-in-out infinite;
}
.scn-adair-murder-watson-grief .desk {
  position: absolute; bottom: 10%; left: 40%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.25);
}
.scn-adair-murder-watson-grief .letter {
  position: absolute; bottom: 15%; left: 48%; width: 8%; height: 6%;
  background: #f0e8d0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
  animation: adair-letter 12s ease-in-out infinite;
}
@keyframes adair-window {
  0% { opacity: 0.9; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes adair-beam {
  0% { transform: translateX(0) skewX(0deg); opacity: 0.6; }
  50% { transform: translateX(8px) skewX(-2deg); opacity: 0.8; }
  100% { transform: translateX(-4px) skewX(1deg); opacity: 0.5; }
}
@keyframes adair-door {
  0% { transform: scaleX(0.95) translateY(0); }
  25% { transform: scaleX(0.95) translateY(-1px); }
  75% { transform: scaleX(0.96) translateY(1px); }
  100% { transform: scaleX(0.95) translateY(0); }
}
@keyframes adair-watson {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-2px) rotate(0deg); }
  60% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes adair-letter {
  0% { transform: rotate(-5deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(2deg) scale(1.02); opacity: 1; }
  100% { transform: rotate(-3deg) scale(0.98); opacity: 0.7; }
}

/* Scene 2: holmes-return-reveals-alive (warm, bright interior) */
.scn-holmes-return-reveals-alive {
  background: linear-gradient(180deg, #f4e8d0 0%, #d8c8b0 40%, #c0a890 100%),
              radial-gradient(ellipse at 50% 30%, #fce8c0 0%, transparent 70%);
}
.scn-holmes-return-reveals-alive .study-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e0d0b8 0%, #c8b8a0 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-holmes-return-reveals-alive .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.3);
  animation: holmesr-shelf 30s linear infinite;
}
.scn-holmes-return-reveals-alive .desk-holmes {
  position: absolute; bottom: 15%; left: 20%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-holmes-return-reveals-alive .lamp {
  position: absolute; bottom: 22%; left: 22%; width: 4%; height: 10%;
  background: #d0a060;
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 8px #f0c880, 0 0 40px 16px rgba(240,200,128,0.4);
  animation: holmesr-lamp 6s ease-in-out infinite alternate;
}
.scn-holmes-return-reveals-alive .figure-holmes {
  position: absolute; bottom: 20%; left: 50%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: holmesr-holmes 5s ease-in-out infinite;
}
.scn-holmes-return-reveals-alive .figure-watson-chair {
  position: absolute; bottom: 18%; left: 60%; width: 10%; height: 24%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: holmesr-watson 5s ease-in-out infinite reverse;
}
.scn-holmes-return-reveals-alive .rug {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a5a4a 30%, #6a4a3a 100%);
  border-radius: 50%;
  filter: blur(3px);
  opacity: 0.6;
}
@keyframes holmesr-shelf {
  0% { transform: translateX(0); }
  100% { transform: translateX(-2px); }
}
@keyframes holmesr-lamp {
  0% { box-shadow: 0 0 20px 8px #f0c880, 0 0 40px 16px rgba(240,200,128,0.4); }
  50% { box-shadow: 0 0 30px 12px #f0d090, 0 0 60px 24px rgba(240,208,144,0.5); }
  100% { box-shadow: 0 0 18px 6px #d0a060, 0 0 30px 12px rgba(208,160,96,0.3); }
}
@keyframes holmesr-holmes {
  0% { transform: translateY(0) rotate(-1deg); }
  40% { transform: translateY(-3px) rotate(0deg); }
  80% { transform: translateY(1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes holmesr-watson {
  0% { transform: translateY(0) rotate(1deg); }
  30% { transform: translateY(-2px) rotate(0deg); }
  70% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}

/* Scene 3: moran-capture-and-norwood-intro (tense, dim interior) */
.scn-moran-capture-and-norwood-intro {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e2a 100%),
              radial-gradient(ellipse at 60% 40%, #3a3a5e 0%, transparent 70%);
}
.scn-moran-capture-and-norwood-intro .dim-room {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1c1c2c 0%, #2c2c3c 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-moran-capture-and-norwood-intro .window-frame {
  position: absolute; top: 10%; left: 50%; width: 30%; height: 50%;
  transform: translateX(-50%);
  border: 4px solid #4a4a5a;
  border-radius: 2px;
  background: #1a1a2a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: moranc-window 12s ease-in-out infinite;
}
.scn-moran-capture-and-norwood-intro .curtain {
  position: absolute; top: 8%; left: 48%; width: 34%; height: 55%;
  background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  opacity: 0.5;
  animation: moranc-curtain 7s ease-in-out infinite alternate;
}
.scn-moran-capture-and-norwood-intro .wax-dummy {
  position: absolute; top: 15%; left: 52%; width: 8%; height: 30%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #c0b090 0%, #807060 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 0 20px 4px rgba(200,180,150,0.3);
  animation: moranc-dummy 4s ease-in-out infinite;
}
.scn-moran-capture-and-norwood-intro .shadow-holmes {
  position: absolute; bottom: 10%; left: 20%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  opacity: 0.7;
  transform: rotate(-5deg);
  animation: moranc-shadow 8s ease-in-out infinite;
}
.scn-moran-capture-and-norwood-intro .air-gun-barrel {
  position: absolute; bottom: 32%; left: 28%; width: 2%; height: 8%;
  background: #3a3a4a;
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
}
.scn-moran-capture-and-norwood-intro .streetlight {
  position: absolute; top: 5%; left: 60%; width: 3%; height: 6%;
  background: radial-gradient(circle, #f0e080 0%, #c0a040 60%, transparent 100%);
  filter: blur(8px);
  animation: moranc-light 3s ease-in-out infinite alternate;
}
@keyframes moranc-window {
  0% { border-color: #4a4a5a; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
  50% { border-color: #5a5a6a; box-shadow: inset 0 0 40px rgba(0,0,0,0.9); }
  100% { border-color: #3a3a4a; box-shadow: inset 0 0 20px rgba(0,0,0,0.7); }
}
@keyframes moranc-curtain {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(2px) scaleX(0.98); }
  100% { transform: translateX(-2px) scaleX(1.02); }
}
@keyframes moranc-dummy {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(2deg); }
  70% { transform: translateX(-50%) rotate(-3deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes moranc-shadow {
  0% { transform: rotate(-5deg) translateY(0); }
  40% { transform: rotate(-5deg) translateY(-2px); }
  80% { transform: rotate(-5deg) translateY(2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes moranc-light {
  0% { opacity: 0.5; filter: blur(8px) brightness(0.8); }
  50% { opacity: 1; filter: blur(6px) brightness(1); }
  100% { opacity: 0.7; filter: blur(10px) brightness(0.9); }
}

/* Scene 4: norwood-builder-investigation (tense, bright interior) */
.scn-norwood-builder-investigation {
  background: linear-gradient(180deg, #e0d4c0 0%, #c8b8a0 50%, #b0a090 100%),
              radial-gradient(ellipse at 30% 70%, #d8c8b0 0%, transparent 60%);
}
.scn-norwood-builder-investigation .study-norwood {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d0c8b0 0%, #b8b098 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-norwood-builder-investigation .fireplace {
  position: absolute; bottom: 10%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-norwood-builder-investigation .desk-documents {
  position: absolute; bottom: 15%; left: 15%; width: 35%; height: 12%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-norwood-builder-investigation .chair-mcfarlane {
  position: absolute; bottom: 20%; left: 10%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-norwood-builder-investigation .figure-holmes-exam {
  position: absolute; bottom: 18%; left: 22%; width: 8%; height: 26%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: norwood-holmes 5s ease-in-out infinite;
}
.scn-norwood-builder-investigation .window-right {
  position: absolute; top: 8%; right: 5%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #f0ecd8 0%, #d8d0b8 100%);
  border: 4px solid #7a6a5a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(255,255,240,0.3);
  animation: norwood-window 10s ease-in-out infinite alternate;
}
.scn-norwood-builder-investigation .will-papers {
  position: absolute; bottom: 20%; left: 28%; width: 8%; height: 6%;
  background: #f0e8d0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(3deg);
  animation: norwood-papers 8s ease-in-out infinite;
}
@keyframes norwood-holmes {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-2px) rotate(1deg); }
  80% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes norwood-window {
  0% { opacity: 0.85; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: 0.8; filter: brightness(0.95); }
}
@keyframes norwood-papers {
  0% { transform: rotate(3deg) scale(1); }
  40% { transform: rotate(-2deg) scale(1.02); }
  80% { transform: rotate(4deg) scale(0.98); }
  100% { transform: rotate(3deg) scale(1); }
}

.scn-cyclist-investigation-abduction { background: linear-gradient(180deg, #82a6d0 0%, #d6e8f0 60%, #f5e8c0 100%), radial-gradient(ellipse at 75% 20%, #fff4d4 0%, transparent 50%); }
.scn-cyclist-investigation-abduction .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #82a6d0 0%, #b0c8e0 70%, transparent 100%); animation: ci-sky 20s ease-in-out infinite alternate; }
.scn-cyclist-investigation-abduction .sun { position:absolute; top:10%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #ffe066 0%, #ffcc33 40%, transparent 70%); border-radius:50%; animation: ci-sun 30s ease-in-out infinite; }
.scn-cyclist-investigation-abduction .hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: ci-hills 15s ease-in-out infinite alternate; }
.scn-cyclist-investigation-abduction .road { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(90deg, transparent 0%, #6a5a4a 15%, #5a4a3a 30%, #6a5a4a 50%, #5a4a3a 70%, transparent 100%); clip-path: polygon(25% 0%, 75% 0%, 100% 100%, 0% 100%); animation: ci-road 5s ease-in-out infinite; }
.scn-cyclist-investigation-abduction .fence { position:absolute; bottom:28%; left:5%; right:5%; height:4px; background: repeating-linear-gradient(90deg, #5a3a2a 0%, #5a3a2a 12px, transparent 12px, transparent 24px); animation: ci-fence 12s linear infinite; }
.scn-cyclist-investigation-abduction .cyclist { position:absolute; bottom:22%; left:30%; width:18px; height:30px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-cycle 2s ease-in-out infinite; }
.scn-cyclist-investigation-abduction .abductor { position:absolute; bottom:22%; right:25%; width:22px; height:35px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-abduct 3s ease-in-out infinite; }
.scn-cyclist-investigation-abduction .bush { position:absolute; bottom:25%; left:15%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 50%, #3a6a3a 0%, #1a3a1a 100%); border-radius: 50%; filter: blur(2px); animation: ci-bush 8s ease-in-out infinite; }
@keyframes ci-sky { 0% { background: linear-gradient(180deg, #82a6d0 0%, #b0c8e0 70%, transparent 100%); } 50% { background: linear-gradient(180deg, #90b8e0 0%, #c0d8f0 70%, transparent 100%); } 100% { background: linear-gradient(180deg, #78a0c8 0%, #a0b8d8 70%, transparent 100%); } }
@keyframes ci-sun { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-10px,5px) scale(1.05); } }
@keyframes ci-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(2px) scaleY(0.98); } }
@keyframes ci-road { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes ci-fence { 0% { background-position: 0 0; } 100% { background-position: 48px 0; } }
@keyframes ci-cycle { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes ci-abduct { 0%,100% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(10px) scaleY(1.05); } 60% { transform: translateX(-5px) scaleY(0.95); } }
@keyframes ci-bush { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } }

.scn-forced-wedding-resolution { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 30%, #4a3a3a 0%, transparent 70%); }
.scn-forced-wedding-resolution .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); animation: fw-wall 10s ease-in-out infinite; }
.scn-forced-wedding-resolution .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; }
.scn-forced-wedding-resolution .table { position:absolute; bottom:20%; left:40%; width:80px; height:12px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: fw-table 4s ease-in-out infinite; }
.scn-forced-wedding-resolution .bride { position:absolute; bottom:22%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fw-bride 3s ease-in-out infinite; }
.scn-forced-wedding-resolution .groom { position:absolute; bottom:22%; right:35%; width:22px; height:42px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fw-groom 4s ease-in-out infinite; }
.scn-forced-wedding-resolution .clergyman { position:absolute; bottom:25%; left:50%; width:20px; height:45px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: fw-clergy 5s ease-in-out infinite; }
.scn-forced-wedding-resolution .holmes { position:absolute; bottom:22%; left:18%; width:20px; height:40px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fw-holmes 6s ease-in-out infinite; }
.scn-forced-wedding-resolution .lamp { position:absolute; top:30%; left:25%; width:14px; height:14px; background: radial-gradient(circle, #d4a060 0%, #804020 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #d4a060, 0 0 40px 12px rgba(212,160,96,.4); animation: fw-lamp 2s ease-in-out infinite alternate; }
@keyframes fw-wall { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes fw-table { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } }
@keyframes fw-bride { 0%,100% { transform: translateY(0) rotate(-3deg); } 30% { transform: translateY(-1px) rotate(2deg); } 60% { transform: translateY(0) rotate(-2deg); } }
@keyframes fw-groom { 0%,100% { transform: translateY(0) rotate(3deg); } 30% { transform: translateY(1px) rotate(-2deg); } 60% { transform: translateY(0) rotate(1deg); } }
@keyframes fw-clergy { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } 60% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes fw-holmes { 0%,100% { transform: translateX(0) rotate(-2deg); } 40% { transform: translateX(5px) rotate(2deg); } 80% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes fw-lamp { 0% { box-shadow: 0 0 20px 4px #d4a060, 0 0 40px 8px rgba(212,160,96,.3); opacity:0.8; } 100% { box-shadow: 0 0 30px 10px #e0b070, 0 0 60px 16px rgba(224,176,112,.5); opacity:1; } }

.scn-confessional-resolution-cyclist { background: linear-gradient(180deg, #2a2a2a 0%, #3a3a3a 50%, #2a2a2a 100%), radial-gradient(ellipse at 50% 70%, #4a4a4a 0%, transparent 60%); }
.scn-confessional-resolution-cyclist .bg-room { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.5); }
.scn-confessional-resolution-cyclist .bookshelf { position:absolute; top:10%; left:5%; width:30%; height:60%; background: repeating-linear-gradient(90deg, #4a3a2a 0%, #4a3a2a 6px, #3a2a1a 6px, #3a2a1a 12px); border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: cr-shelf 20s ease-in-out infinite; }
.scn-confessional-resolution-cyclist .window { position:absolute; top:15%; right:10%; width:20%; height:40%; background: linear-gradient(180deg, #5a5a6a 0%, #7a7a8a 100%); border-radius: 4px; box-shadow: 0 0 30px rgba(120,120,160,.2); animation: cr-window 15s ease-in-out infinite alternate; }
.scn-confessional-resolution-cyclist .desk { position:absolute; bottom:18%; left:10%; right:50%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: cr-desk 5s ease-in-out infinite; }
.scn-confessional-resolution-cyclist .holmes-fig { position:absolute; bottom:15%; left:20%; width:18px; height:38px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-holmes 4s ease-in-out infinite; }
.scn-confessional-resolution-cyclist .watson-fig { position:absolute; bottom:15%; right:30%; width:18px; height:36px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-watson 5s ease-in-out infinite; }
.scn-confessional-resolution-cyclist .lamp-glow { position:absolute; top:25%; left:15%; width:20px; height:20px; background: radial-gradient(circle, #d4a060 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 8px #d4a060; animation: cr-lamp 3s ease-in-out infinite alternate; }
@keyframes cr-shelf { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes cr-window { 0% { background: linear-gradient(180deg, #5a5a6a 0%, #7a7a8a 100%); } 100% { background: linear-gradient(180deg, #6a6a7a 0%, #8a8a9a 100%); } }
@keyframes cr-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes cr-holmes { 0%,100% { transform: translateY(0) rotate(-2deg); } 40% { transform: translateY(-1px) rotate(3deg); } 80% { transform: translateY(0) rotate(-1deg); } }
@keyframes cr-watson { 0%,100% { transform: translateY(0) rotate(2deg); } 40% { transform: translateY(1px) rotate(-3deg); } }
@keyframes cr-lamp { 0% { opacity:0.7; transform: scale(1); } 100% { opacity:1; transform: scale(1.1); } }

.scn-priory-school-investigation-start { background: linear-gradient(180deg, #c8d8e8 0%, #e8f0f8 50%, #c8d8e8 100%), radial-gradient(ellipse at 50% 20%, #ffffff 0%, transparent 60%); }
.scn-priory-school-investigation-start .bg-school { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #d0dce8 0%, #b0c0d0 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.1); }
.scn-priory-school-investigation-start .window-bright { position:absolute; top:15%; right:10%; width:25%; height:35%; background: linear-gradient(135deg, #ffffff 0%, #d0e0f0 100%); border-radius: 4px; box-shadow: 0 0 20px rgba(255,255,255,.3); animation: ps-window 10s ease-in-out infinite alternate; }
.scn-priory-school-investigation-start .desk-wood { position:absolute; bottom:20%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-priory-school-investigation-start .chair-left { position:absolute; bottom:25%; left:20%; width:16px; height:24px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ps-chair 3s ease-in-out infinite; }
.scn-priory-school-investigation-start .chair-right { position:absolute; bottom:25%; right:20%; width:16px; height:24px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ps-chair2 3.5s ease-in-out infinite 0.5s; }
.scn-priory-school-investigation-start .huxtable { position:absolute; bottom:18%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-huxtable 4s ease-in-out infinite; }
.scn-priory-school-investigation-start .duke { position:absolute; bottom:18%; right:30%; width:22px; height:42px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-duke 4.5s ease-in-out infinite 0.2s; }
.scn-priory-school-investigation-start .holmes-prof { position:absolute; bottom:18%; left:50%; transform: translateX(-50%); width:18px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-holmes 3s ease-in-out infinite; }
.scn-priory-school-investigation-start .papers { position:absolute; bottom:22%; left:40%; width:20px; height:2px; background: #d0d0d0; border-radius: 1px; box-shadow: 0 3px 0 #c0c0c0, 0 6px 0 #b0b0b0; animation: ps-papers 6s ease-in-out infinite; }
@keyframes ps-window { 0% { opacity:0.8; } 100% { opacity:1; } }
@keyframes ps-chair { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes ps-chair2 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-3deg); } }
@keyframes ps-huxtable { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes ps-duke { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(1px) rotate(-2deg); } }
@keyframes ps-holmes { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(3deg); } }
@keyframes ps-papers { 0%,100% { opacity:0.8; } 50% { opacity:1; } }

/* item-harpoon-weapon – dim interior, tense, harpooner confession */
.scn-item-harpoon-weapon { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2a 100%), radial-gradient(ellipse at 60% 30%, #3a3a4e 0%, transparent 70%); }
.scn-item-harpoon-weapon .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%); animation: ihw-wall 12s ease-in-out infinite alternate; }
.scn-item-harpoon-weapon .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2e2e1a 0%, #1a1a0e 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,.6); }
.scn-item-harpoon-weapon .table { position:absolute; bottom:18%; left:20%; width:55%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-item-harpoon-weapon .harpoon { position:absolute; bottom:28%; left:50%; width:4px; height:45%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 40%, #3a2a1a 100%); transform: translateX(-50%) rotate(-2deg); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ihw-harpoon 6s ease-in-out infinite; }
.scn-item-harpoon-weapon .harpoon-point { position:absolute; bottom:68%; left:50%; width:12px; height:18px; background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); transform: translateX(-50%) rotate(-2deg); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); box-shadow: 0 0 8px rgba(192,176,160,.4); animation: ihw-point 6s ease-in-out infinite; }
.scn-item-harpoon-weapon .figure-seated { position:absolute; bottom:16%; left:30%; width:20%; height:28%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #05050f 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,.4); animation: ihw-figure 4s ease-in-out infinite; }
.scn-item-harpoon-weapon .lamp-glow { position:absolute; top:15%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #c8a060 0%, #a08040 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(200,160,96,.3), 0 0 120px 40px rgba(200,160,96,.15); animation: ihw-lamp 3s ease-in-out infinite alternate; }
.scn-item-harpoon-weapon .shadow-bar { position:absolute; bottom:30%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.6) 30%, rgba(0,0,0,.6) 70%, transparent 100%); filter: blur(3px); animation: ihw-shadow 8s ease-in-out infinite; }
@keyframes ihw-wall { 0% { opacity:.7; } 50% { opacity:.85; } 100% { opacity:.75; } }
@keyframes ihw-harpoon { 0%,100% { transform: translateX(-50%) rotate(-2deg) scaleY(1); } 25% { transform: translateX(-50%) rotate(-1deg) scaleY(1.02); } 50% { transform: translateX(-48%) rotate(-3deg) scaleY(.98); } 75% { transform: translateX(-52%) rotate(0deg) scaleY(1.01); } }
@keyframes ihw-point { 0%,100% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-48%) rotate(-3deg); } 75% { transform: translateX(-52%) rotate(0deg); } }
@keyframes ihw-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } }
@keyframes ihw-lamp { 0% { opacity:.6; transform: scale(.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(.95); } }
@keyframes ihw-shadow { 0%,100% { opacity:.5; } 50% { opacity:.8; } }

/* cairns-caught-milverton-plan – dark, tense, two figures plotting */
.scn-cairns-caught-milverton-plan { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #0e0e1e 100%), radial-gradient(ellipse at 30% 80%, #1a1a3a 0%, transparent 60%); }
.scn-cairns-caught-milverton-plan .deep-bg { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1f 0%, #1a1a2e 60%, #0a0a1a 100%); animation: ccm-bg 20s ease-in-out infinite alternate; }
.scn-cairns-caught-milverton-plan .window-moon { position:absolute; top:10%; right:15%; width:25%; height:35%; background: linear-gradient(135deg, #2a2a4e 0%, #1a1a2e 100%); border-radius: 4px; border: 3px solid #2a2a3a; box-shadow: inset 0 0 20px rgba(100,100,180,.1); }
.scn-cairns-caught-milverton-plan .moonlight-beam { position:absolute; top:10%; right:15%; width:25%; height:60%; background: linear-gradient(180deg, rgba(180,200,255,.08) 0%, rgba(180,200,255,.04) 40%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%); filter: blur(4px); animation: ccm-beam 12s ease-in-out infinite alternate; }
.scn-cairns-caught-milverton-plan .figure-left { position:absolute; bottom:15%; left:15%; width:22%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 60%, #05050a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,.5); animation: ccm-fig-l 5s ease-in-out infinite; }
.scn-cairns-caught-milverton-plan .figure-right { position:absolute; bottom:15%; right:12%; width:25%; height:42%; background: linear-gradient(180deg, #2a2a3a 0%, #151525 60%, #0a0a15 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,.4); animation: ccm-fig-r 6s ease-in-out infinite; }
.scn-cairns-caught-milverton-plan .table-plan { position:absolute; bottom:12%; left:30%; width:40%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-cairns-caught-milverton-plan .lamp-dim { position:absolute; bottom:28%; left:45%; width:12px; height:16px; background: radial-gradient(circle, #605030 0%, #302010 70%); border-radius: 50%; box-shadow: 0 0 20px 4px rgba(96,80,48,.3), 0 0 40px 8px rgba(96,80,48,.15); animation: ccm-lamp 4s ease-in-out infinite alternate; }
.scn-cairns-caught-milverton-plan .shadow-pool { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%); filter: blur(8px); animation: ccm-shadow 10s ease-in-out infinite; }
@keyframes ccm-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes ccm-beam { 0% { opacity:.3; transform: translateX(0); } 50% { opacity:.6; transform: translateX(5px); } 100% { opacity:.4; transform: translateX(-3px); } }
@keyframes ccm-fig-l { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes ccm-fig-r { 0%,100% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-2px) rotate(-2deg) scaleX(1.02); } 50% { transform: translateY(-4px) rotate(1deg) scaleX(.98); } 75% { transform: translateY(-1px) rotate(-1deg) scaleX(1.01); } }
@keyframes ccm-lamp { 0% { opacity:.4; transform: scale(.8); } 50% { opacity:.7; transform: scale(1.1); } 100% { opacity:.5; transform: scale(.9); } }
@keyframes ccm-shadow { 0%,100% { opacity:.5; } 50% { opacity:.8; } }

/* milverton-murder-by-widow – dark, dim interior, gunshot aftermath */
.scn-milverton-murder-by-widow { background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 40%, #1a1010 100%), radial-gradient(ellipse at 30% 60%, #3a2020 0%, transparent 70%); }
.scn-milverton-murder-by-widow .study-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.5); animation: mmb-wall 15s ease-in-out infinite alternate; }
.scn-milverton-murder-by-widow .fireplace-glow { position:absolute; bottom:15%; left:5%; width:30%; height:25%; background: linear-gradient(180deg, #8a5030 0%, #4a2010 40%, #1a0a05 100%); border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 0 60px 20px rgba(138,80,48,.4), 0 0 120px 40px rgba(138,80,48,.2); animation: mmb-fire 2s ease-in-out infinite alternate; }
.scn-milverton-murder-by-widow .bookshelf { position:absolute; top:10%; right:8%; width:20%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.4), 0 4px 8px rgba(0,0,0,.3); }
.scn-milverton-murder-by-widow .figure-widow { position:absolute; bottom:22%; left:48%; width:20%; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 60%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 25px rgba(100,40,40,.3); animation: mmb-widow 4s ease-in-out infinite; }
.scn-milverton-murder-by-widow .figure-fallen { position:absolute; bottom:8%; left:38%; width:25%; height:18%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: mmb-fallen 6s ease-in-out infinite; }
.scn-milverton-murder-by-widow .safe-open { position:absolute; bottom:28%; left:12%; width:18%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; border: 3px solid #2a1a0a; box-shadow: inset 0 0 15px rgba(0,0,0,.4), 0 0 20px rgba(80,60,40,.3); }
.scn-milverton-murder-by-widow .letters-flame { position:absolute; bottom:32%; left:14%; width:8%; height:12%; background: radial-gradient(circle, #c08040 0%, #a06030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(192,128,64,.5), 0 0 60px 20px rgba(192,128,64,.25); animation: mmb-letters 1.5s ease-in-out infinite alternate; }
.scn-milverton-murder-by-widow .smoke-wisp { position:absolute; bottom:30%; left:8%; width:12%; height:20%; background: radial-gradient(ellipse, rgba(80,60,40,.3) 0%, transparent 70%); filter: blur(6px); animation: mmb-smoke 8s ease-in-out infinite; }
@keyframes mmb-wall { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes mmb-fire { 0% { opacity:.6; transform: scale(.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.7; transform: scale(.98); } }
@keyframes mmb-widow { 0%,100% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-3px) rotate(2deg); } 40% { transform: translateY(-1px) rotate(-1deg); } 60% { transform: translateY(-4px) rotate(1deg); } 80% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes mmb-fallen { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(2px); } }
@keyframes mmb-letters { 0% { opacity:.5; transform: scale(.8); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:.6; transform: scale(.9); } }
@keyframes mmb-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.3; } 50% { transform: translateY(-30px) translateX(10px) scale(1.5); opacity:.6; } 100% { transform: translateY(-60px) translateX(-5px) scale(2); opacity:0; } }

/* napoleon-bust-mystery-begins – bright interior, tense investigation */
.scn-napoleon-bust-mystery-begins { background: linear-gradient(180deg, #e8e0d8 0%, #d0c8c0 40%, #c0b8b0 100%), radial-gradient(ellipse at 50% 30%, #f0e8e0 0%, transparent 70%); }
.scn-napoleon-bust-mystery-begins .bright-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8e0d8 0%, #d8d0c8 100%); box-shadow: inset 0 -20px 40px rgba(0,0,0,.05); }
.scn-napoleon-bust-mystery-begins .floor-checker { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-conic-gradient(#c8c0b8 0% 25%, #b8b0a8 0% 50%) 0 0 / 40px 40px; opacity:.6; box-shadow: inset 0 20px 30px rgba(0,0,0,.1); animation: nbm-floor 20s linear infinite; }
.scn-napoleon-bust-mystery-begins .table-evidence { position:absolute; bottom:18%; left:15%; width:70%; height:8%; background: linear-gradient(180deg, #a09890 0%, #888078 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,.2); }
.scn-napoleon-bust-mystery-begins .bust-fragment-a { position:absolute; bottom:20%; left:25%; width:8%; height:14%; background: linear-gradient(180deg, #c8c0b0 0%, #a09888 60%, #807868 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(15deg); box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: nbm-frag-a 8s ease-in-out infinite; }
.scn-napoleon-bust-mystery-begins .bust-fragment-b { position:absolute; bottom:19%; left:38%; width:6%; height:10%; background: linear-gradient(180deg, #c8c0b0 0%, #a09888 60%, #807868 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: rotate(-20deg); box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: nbm-frag-b 10s ease-in-out infinite; }
.scn-napoleon-bust-mystery-begins .bust-fragment-c { position:absolute; bottom:21%; left:50%; width:5%; height:8%; background: linear-gradient(180deg, #c8c0b0 0%, #a09888 60%, #807868 100%); border-radius: 20% 20% 10% 10% / 40% 40% 15% 15%; transform: rotate(35deg); box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: nbm-frag-c 12s ease-in-out infinite; }
.scn-napoleon-bust-mystery-begins .figure-holmes { position:absolute; bottom:12%; left:20%; width:18%; height:38%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,.2); animation: nbm-holmes 6s ease-in-out infinite; }
.scn-napoleon-bust-mystery-begins .figure-lestrade { position:absolute; bottom:12%; right:18%; width:20%; height:36%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 60%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,.2); animation: nbm-lestrade 7s ease-in-out infinite; }
.scn-napoleon-bust-mystery-begins .window-light { position:absolute; top:5%; right:10%; width:28%; height:40%; background: linear-gradient(135deg, #f0e8e0 0%, #e0d8d0 100%); border-radius: 4px; border: 4px solid #c0b8b0; box-shadow: inset 0 0 20px rgba(255,255,255,.3), 0 0 30px rgba(255,255,255,.1); animation: nbm-window 15s ease-in-out infinite alternate; }
@keyframes nbm-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }
@keyframes nbm-frag-a { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-3px); } }
@keyframes nbm-frag-b { 0%,100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-22deg) translateY(-2px); } }
@keyframes nbm-frag-c { 0%,100% { transform: rotate(35deg) translateY(0); } 50% { transform: rotate(32deg) translateY(-4px); } }
@keyframes nbm-holmes { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes nbm-lestrade { 0%,100% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-2px) rotate(-2deg) scaleX(1.02); } 50% { transform: translateY(0) rotate(1deg) scaleX(.98); } 75% { transform: translateY(-1px) rotate(-1deg) scaleX(1.01); } }
@keyframes nbm-window { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:.9; transform: scale(.98); } }

/* ---------- Scene: bust-photo-beppo-identified (tense, bright interior) ---------- */
.scn-bust-photo-beppo-identified {
  background:
    linear-gradient(135deg, #f5e6d0 0%, #e8d5b8 60%, #d4c4a6 100%),
    radial-gradient(ellipse at 80% 30%, rgba(255,220,160,0.3) 0%, transparent 60%);
}
.scn-bust-photo-beppo-identified .bp-backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e2cc 0%, transparent 60%);
}
.scn-bust-photo-beppo-identified .bp-table {
  position: absolute; bottom:10%; left:15%; right:15%; height:12%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5a43 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-bust-photo-beppo-identified .bp-photo-frame {
  position: absolute; bottom:28%; left:42%; width:16%; height:22%;
  background: linear-gradient(135deg, #d4c0a6 0%, #b8a48c 100%);
  border: 3px solid #9c876f;
  border-radius: 4px;
  box-shadow: 2px 4px 10px rgba(0,0,0,0.3);
  animation: bp-photo 2s ease-in-out infinite alternate;
}
.scn-bust-photo-beppo-identified .bp-shadow {
  position: absolute; bottom:12%; left:60%; width:20%; height:50%;
  background: linear-gradient(180deg, rgba(60,45,35,0.4) 0%, rgba(60,45,35,0.2) 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  transform-origin: bottom center;
  animation: bp-shadow-sway 3s ease-in-out infinite alternate;
}
.scn-bust-photo-beppo-identified .bp-light-shaft {
  position: absolute; top:-10%; left:70%; width:8%; height:130%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%);
  transform: rotate(10deg);
  filter: blur(8px);
  animation: bp-shaft-flicker 1.5s ease-in-out infinite alternate;
}
.scn-bust-photo-beppo-identified .bp-bust-shard {
  position: absolute; bottom:12%; left:30%; width:8%; height:10%;
  background: linear-gradient(135deg, #b09878 0%, #907a5e 100%);
  border-radius: 0 20% 0 20%;
  box-shadow: 1px 2px 4px rgba(0,0,0,0.3);
  animation: bp-shard-rotate 4s ease-in-out infinite alternate;
}
@keyframes bp-photo {
  0% { transform: scale(1) rotate(-1deg); }
  50% { transform: scale(1.02) rotate(1deg); box-shadow: 2px 4px 14px rgba(0,0,0,0.4); }
  100% { transform: scale(0.98) rotate(0deg); }
}
@keyframes bp-shadow-sway {
  0% { transform: translateX(0) skewX(0deg); }
  50% { transform: translateX(4px) skewX(3deg); }
  100% { transform: translateX(-2px) skewX(-1deg); }
}
@keyframes bp-shaft-flicker {
  0% { opacity: 0.6; transform: rotate(10deg); }
  50% { opacity: 1; transform: rotate(12deg); }
  100% { opacity: 0.7; transform: rotate(8deg); }
}
@keyframes bp-shard-rotate {
  0% { transform: rotate(0deg) translate(0,0); }
  50% { transform: rotate(15deg) translate(2px,-2px); }
  100% { transform: rotate(-5deg) translate(-1px,1px); }
}

/* ---------- Scene: item-napoleon-bust (tense, dark) ---------- */
.scn-item-napoleon-bust {
  background:
    linear-gradient(180deg, #0a0e1a 0%, #141a2e 40%, #1e2a42 100%),
    radial-gradient(ellipse at 70% 20%, #2a3a5a 0%, transparent 70%);
}
.scn-item-napoleon-bust .nb-night-sky {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 10%, rgba(80,120,200,0.15) 0%, transparent 60%);
}
.scn-item-napoleon-bust .nb-moon-glow {
  position: absolute; top:8%; left:68%; width:6%; height:10%;
  background: radial-gradient(circle, #b0c8e8 0%, rgba(60,80,140,0.4) 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(120,160,220,0.3);
  animation: nb-moon-pulse 4s ease-in-out infinite alternate;
}
.scn-item-napoleon-bust .nb-window {
  position: absolute; bottom:40%; left:35%; width:20%; height:24%;
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 3px solid #4a5a6a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 10px rgba(200,220,255,0.1);
  animation: nb-window-flicker 0.5s steps(2) infinite;
}
.scn-item-napoleon-bust .nb-bust-on-stand {
  position: absolute; bottom:28%; left:45%; width:8%; height:14%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-item-napoleon-bust .nb-silhouette {
  position: absolute; bottom:12%; left:52%; width:12%; height:40%;
  background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: nb-silhouette-stealth 5s ease-in-out infinite alternate;
}
.scn-item-napoleon-bust .nb-shrub {
  position: absolute; bottom:0; left:20%; right:10%; height:15%;
  background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  animation: nb-shrub-sway 6s ease-in-out infinite alternate;
}
@keyframes nb-moon-pulse {
  0% { box-shadow: 0 0 20px 6px rgba(120,160,220,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 14px rgba(120,160,220,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(120,160,220,0.25); opacity: 0.85; }
}
@keyframes nb-window-flicker {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 5px rgba(200,220,255,0.1); }
  50% { box-shadow: inset 0 0 25px rgba(0,0,0,0.9), 0 0 10px rgba(200,220,255,0.2); }
  100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 3px rgba(200,220,255,0.05); }
}
@keyframes nb-silhouette-stealth {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(6px) rotate(2deg); }
  100% { transform: translateX(-4px) rotate(0deg); }
}
@keyframes nb-shrub-sway {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.98); }
}

/* ---------- Scene: item-borgia-pearl (calm, bright interior) ---------- */
.scn-item-borgia-pearl {
  background:
    linear-gradient(135deg, #fef8e8 0%, #f0e6cc 50%, #e0d4b8 100%),
    radial-gradient(ellipse at 60% 50%, rgba(255,240,200,0.5) 0%, transparent 70%);
}
.scn-item-borgia-pearl .ibp-backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fcf4e0 0%, transparent 50%);
}
.scn-item-borgia-pearl .ibp-table {
  position: absolute; bottom:12%; left:20%; right:20%; height:10%;
  background: linear-gradient(180deg, #b8a082 0%, #907a62 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.15);
}
.scn-item-borgia-pearl .ibp-bust {
  position: absolute; bottom:22%; left:35%; width:30%; height:30%;
  background: linear-gradient(150deg, #d4c0a8 0%, #b8a088 50%, #9c846c 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.25);
}
.scn-item-borgia-pearl .ibp-pearl {
  position: absolute; bottom:28%; left:48%; width:4%; height:5%;
  background: radial-gradient(circle at 40% 30%, #fff8e0 0%, #d0b880 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(200,160,80,0.5), 0 0 60px 24px rgba(200,160,80,0.2);
  animation: ibp-pearl-breathe 6s ease-in-out infinite alternate;
}
.scn-item-borgia-pearl .ibp-hand {
  position: absolute; bottom:18%; left:52%; width:8%; height:12%;
  background: linear-gradient(180deg, #c8b498 0%, #a89078 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ibp-hand-reach 8s ease-in-out infinite alternate;
}
.scn-item-borgia-pearl .ibp-glow-rim {
  position: absolute; bottom:22%; left:30%; right:30%; top:20%;
  background: radial-gradient(ellipse at 50% 60%, rgba(230,200,120,0.15) 0%, transparent 70%);
  filter: blur(12px);
  animation: ibp-glow-pulse 4s ease-in-out infinite alternate;
}
@keyframes ibp-pearl-breathe {
  0% { transform: scale(1); box-shadow: 0 0 30px 12px rgba(200,160,80,0.5); }
  50% { transform: scale(1.08); box-shadow: 0 0 40px 18px rgba(200,160,80,0.6); }
  100% { transform: scale(0.97); box-shadow: 0 0 25px 8px rgba(200,160,80,0.45); }
}
@keyframes ibp-hand-reach {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(4deg); }
  100% { transform: translateX(4px) rotate(1deg); }
}
@keyframes ibp-glow-pulse {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* ---------- Scene: three-students-investigation (tense, bright interior) ---------- */
.scn-three-students-investigation {
  background:
    linear-gradient(180deg, #f0f4f0 0%, #e0e8e0 50%, #d0d8d0 100%),
    radial-gradient(ellipse at 30% 90%, rgba(200,220,200,0.3) 0%, transparent 60%);
}
.scn-three-students-investigation .tsi-backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #eef2ee 0%, #d8e0d8 100%);
}
.scn-three-students-investigation .tsi-desk {
  position: absolute; bottom:20%; left:25%; right:25%; height:12%;
  background: linear-gradient(180deg, #b09878 0%, #907a5e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -3px 8px rgba(0,0,0,0.15);
  animation: tsi-desk-creak 5s ease-in-out infinite alternate;
}
.scn-three-students-investigation .tsi-chair {
  position: absolute; bottom:12%; left:18%; width:10%; height:16%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.2);
  transform-origin: bottom center;
  animation: tsi-chair-sway 3s ease-in-out infinite alternate;
}
.scn-three-students-investigation .tsi-pellet {
  position: absolute; bottom:22%; left:46%; width:2%; height:2%;
  background: radial-gradient(circle, #b8a88a 0%, #8a7a6a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.3);
  animation: tsi-pellet-twitch 1.5s ease-in-out infinite alternate;
}
.scn-three-students-investigation .tsi-figure {
  position: absolute; bottom:12%; left:55%; width:10%; height:45%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: tsi-figure-shift 4s ease-in-out infinite alternate;
}
.scn-three-students-investigation .tsi-door {
  position: absolute; bottom:0; right:15%; width:15%; height:50%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
  animation: tsi-door-creak 6s ease-in-out infinite alternate;
}
@keyframes tsi-desk-creak {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(1px) rotate(0.5deg); }
}
@keyframes tsi-chair-sway {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(4px); }
  100% { transform: rotate(-2deg) translateX(-2px); }
}
@keyframes tsi-pellet-twitch {
  0% { transform: translate(0,0); opacity: 0.8; }
  50% { transform: translate(2px,-1px); opacity: 1; }
  100% { transform: translate(-1px,0); opacity: 0.9; }
}
@keyframes tsi-figure-shift {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(-3px) rotate(-0.5deg); }
}
@keyframes tsi-door-creak {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}

/* scene: study-examined-bullet-hole (sbh) */
.scn-study-examined-bullet-hole {
  background: linear-gradient(135deg, #f0e6d0 0%, #d4b596 60%, #b89a7a 100%),
              radial-gradient(ellipse at 25% 30%, #ffffff 0%, transparent 55%);
}
.scn-study-examined-bullet-hole .sbh-backwall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c9b89a 0%, #a58a6c 100%); }
.scn-study-examined-bullet-hole .sbh-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a58a6c 0%, #7e664a 100%); }
.scn-study-examined-bullet-hole .sbh-window { position:absolute; left:10%; top:15%; width:25%; height:40%; background: linear-gradient(135deg, #e0f0ff 0%, #b0ccee 100%); border:4px solid #6e5b3e; border-radius:4px; animation: sbh-sky 12s ease-in-out infinite; }
.scn-study-examined-bullet-hole .sbh-sash-v { position:absolute; left:22.5%; top:15%; width:4px; height:40%; background:#5a4832; }
.scn-study-examined-bullet-hole .sbh-sash-h { position:absolute; left:10%; top:35%; width:25%; height:4px; background:#5a4832; }
.scn-study-examined-bullet-hole .sbh-bullet-hole { position:absolute; left:22%; top:35%; width:10px; height:10px; background: radial-gradient(circle at 40% 40%, #2a1a0a 0%, #0a0500 70%); border-radius:50%; box-shadow: 0 0 8px 3px #000; animation: sbh-pulse 3s ease-in-out infinite; }
.scn-study-examined-bullet-hole .sbh-desk { position:absolute; right:5%; bottom:30%; width:25%; height:15%; background: linear-gradient(180deg, #8b7355 0%, #6e5b3e 100%); border-radius:4px 4px 0 0; transform: perspective(400px) rotateX(5deg); }
.scn-study-examined-bullet-hole .sbh-lamp { position:absolute; right:12%; bottom:42%; width:12px; height:18px; background: linear-gradient(180deg, #d4a263 0%, #8c6239 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; animation: sbh-flicker 2s ease-in-out infinite; }
.scn-study-examined-bullet-hole .sbh-curtain { position:absolute; left:8%; top:13%; width:29%; height:44%; background: linear-gradient(135deg, #a58a6c 40%, #7e664a 100%); border-radius:4px; opacity:0.3; animation: sbh-sway 6s ease-in-out infinite; }
@keyframes sbh-sky { 0% { background-position: 0% 0%; } 50% { background-position: 20% 10%; } 100% { background-position: 0% 0%; } }
@keyframes sbh-pulse { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.15); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes sbh-flicker { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.8; transform: scaleY(1); } }
@keyframes sbh-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }

/* scene: slaney-summoned-by-cipher (ssc) */
.scn-slaney-summoned-by-cipher {
  background: linear-gradient(180deg, #f7e8c0 0%, #dac07a 50%, #b89b5a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 60%);
}
.scn-slaney-summoned-by-cipher .ssc-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4f0 0%, #5080a8 100%); animation: ssc-sun 15s ease-in-out infinite; }
.scn-slaney-summoned-by-cipher .ssc-field { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8aad6a 0%, #5c7a4a 100%); }
.scn-slaney-summoned-by-cipher .ssc-farmhouse { position:absolute; bottom:30%; left:20%; width:12%; height:20%; background: linear-gradient(180deg, #a67c52 0%, #7a5a3a 100%); border-radius:10% 10% 0 0; }
.scn-slaney-summoned-by-cipher .ssc-tree { position:absolute; bottom:32%; right:15%; width:8%; height:30%; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 100%); border-radius:60% 60% 10% 10% / 40% 40% 10% 10%; animation: ssc-sway 8s ease-in-out infinite; }
.scn-slaney-summoned-by-cipher .ssc-path { position:absolute; bottom:10%; left:45%; width:10%; height:30%; background: linear-gradient(180deg, #c0a870 0%, #9a8250 100%); transform: skewX(-10deg); }
.scn-slaney-summoned-by-cipher .ssc-note { position:absolute; bottom:15%; left:48%; width:8%; height:6%; background: #f5eedd; border:2px solid #b0905a; border-radius:2px; }
.scn-slaney-summoned-by-cipher .ssc-figure { position:absolute; bottom:18%; left:44%; width:10px; height:22px; background: #2a2a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ssc-dance 2s ease-in-out infinite; }
.scn-slaney-summoned-by-cipher .ssc-shadow { position:absolute; bottom:0; left:42%; width:20%; height:5%; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(4px); animation: ssc-shadow 4s ease-in-out infinite; }
@keyframes ssc-sun { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ssc-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes ssc-dance { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ssc-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.3; } }

/* scene: mcfarlane-arrested-will-examined (mae) */
.scn-mcfarlane-arrested-will-examined {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b596 70%, #b89a7a 100%),
              radial-gradient(ellipse at 40% 30%, #ffffff 0%, transparent 60%);
}
.scn-mcfarlane-arrested-will-examined .mae-backwall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #b8a080 0%, #908060 100%); }
.scn-mcfarlane-arrested-will-examined .mae-desk { position:absolute; bottom:25%; left:10%; width:60%; height:30%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a30 100%); border-radius:8px; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-mcfarlane-arrested-will-examined .mae-will { position:absolute; bottom:35%; left:30%; width:20%; height:12%; background: #f5eedd; border:2px solid #b0905a; border-radius:2px; transform: rotate(-3deg); }
.scn-mcfarlane-arrested-will-examined .mae-seal { position:absolute; bottom:37%; left:38%; width:6%; padding-top:6%; background: #702243; border-radius:50%; box-shadow: 0 0 6px #702243; animation: mae-seal 5s ease-in-out infinite; }
.scn-mcfarlane-arrested-will-examined .mae-magnify { position:absolute; bottom:30%; left:55%; width:10%; height:18%; background: transparent; border:3px solid #5a4a30; border-radius:50%; box-shadow: inset 0 0 8px rgba(255,255,255,0.3); animation: mae-glass 4s ease-in-out infinite; }
.scn-mcfarlane-arrested-will-examined .mae-hand { position:absolute; bottom:28%; left:25%; width:8%; height:20%; background: #2a2a2a; border-radius:30% 30% 20% 20% / 60% 60% 30% 30%; animation: mae-reach 6s ease-in-out infinite; }
.scn-mcfarlane-arrested-will-examined .mae-lamp { position:absolute; top:12%; right:12%; width:12px; height:20px; background: linear-gradient(180deg, #d4a263 0%, #8c6239 100%); border-radius:50% 50% 10% 10% / 70% 70% 10% 10%; animation: mae-flicker 2.5s ease-in-out infinite; }
.scn-mcfarlane-arrested-will-examined .mae-shadow { position:absolute; bottom:0; left:5%; width:40%; height:10%; background: rgba(0,0,0,0.15); border-radius:50%; filter: blur(6px); animation: mae-shadow 4s ease-in-out infinite; }
@keyframes mae-seal { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes mae-glass { 0% { box-shadow: inset 0 0 8px rgba(255,255,255,0.3); } 50% { box-shadow: inset 0 0 16px rgba(255,255,255,0.6); } 100% { box-shadow: inset 0 0 8px rgba(255,255,255,0.3); } }
@keyframes mae-reach { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mae-flicker { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes mae-shadow { 0% { transform: scaleX(1); opacity:0.2; } 50% { transform: scaleX(1.3); opacity:0.4; } 100% { transform: scaleX(1); opacity:0.2; } }

/* scene: dancing-men-clues-cyclist (dmc) */
.scn-dancing-men-clues-cyclist {
  background: linear-gradient(180deg, #f7e8c0 0%, #dac07a 50%, #b89b5a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 60%);
}
.scn-dancing-men-clues-cyclist .dmc-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4f0 0%, #5080a8 100%); animation: dmc-sun 15s ease-in-out infinite; }
.scn-dancing-men-clues-cyclist .dmc-road { position:absolute; bottom:0; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #a09070 0%, #706050 100%); }
.scn-dancing-men-clues-cyclist .dmc-bicycle { position:absolute; bottom:20%; left:35%; width:15%; height:10%; background: transparent; border-top:3px solid #4a4a4a; border-radius:50% 50% 0 0; }
.scn-dancing-men-clues-cyclist .dmc-bicycle::before { content:''; position:absolute; bottom:-5px; left:10%; width:12px; height:12px; background: #4a4a4a; border-radius:50%; }
.scn-dancing-men-clues-cyclist .dmc-paper { position:absolute; bottom:18%; left:38%; width:6%; height:5%; background: #f5eedd; border:1px solid #b0905a; border-radius:1px; animation: dmc-flutter 3s ease-in-out infinite; }
.scn-dancing-men-clues-cyclist .dmc-figure { position:absolute; bottom:22%; right:30%; width:12px; height:26px; background: #2a2a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: dmc-run 2s ease-in-out infinite; }
.scn-dancing-men-clues-cyclist .dmc-bushes { position:absolute; bottom:25%; left:5%; width:15%; height:20%; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(2px); }
.scn-dancing-men-clues-cyclist .dmc-shadow { position:absolute; bottom:0; left:30%; width:25%; height:5%; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(4px); animation: dmc-shadow 4s ease-in-out infinite; }
@keyframes dmc-sun { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dmc-flutter { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes dmc-run { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-8px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(-16px) translateY(0) rotate(0deg); } 75% { transform: translateX(-24px) translateY(-2px) rotate(-5deg); } 100% { transform: translateX(-32px) translateY(0) rotate(0deg); } }
@keyframes dmc-shadow { 0% { transform: scaleX(1); opacity:0.2; } 50% { transform: scaleX(1.2); opacity:0.4; } 100% { transform: scaleX(1); opacity:0.2; } }

.scn-gilchrist-accused-bannister {
  background: linear-gradient(180deg, #f5e6d3 0%, #d4b896 40%, #c2a48a 100%), radial-gradient(ellipse at 50% 100%, #e8d5c0 0%, transparent 70%);
}
.scn-gilchrist-accused-bannister .gac-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8d5c0 0%, #d0b89a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
}
.scn-gilchrist-accused-bannister .gac-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #8b7355 0%, #a08a6d 30%, #b09878 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-gilchrist-accused-bannister .gac-desk {
  position: absolute; bottom: 32%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #6b5b4a 0%, #4d3d2f 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: gac-desk-shift 6s ease-in-out infinite;
}
.scn-gilchrist-accused-bannister .gac-bannister {
  position: absolute; bottom: 22%; left: 20%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gac-figure-tremble 3s ease-in-out infinite;
}
.scn-gilchrist-accused-bannister .gac-gilchrist {
  position: absolute; bottom: 24%; left: 60%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gac-figure-tremble 3s ease-in-out infinite reverse;
}
.scn-gilchrist-accused-bannister .gac-lamp {
  position: absolute; bottom: 50%; left: 85%; width: 8%; height: 15%;
  background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #d4a04a 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px #d4a04a;
  animation: gac-lamp-glow 2s ease-in-out infinite alternate;
}
.scn-gilchrist-accused-bannister .gac-shadow {
  position: absolute; bottom: 22%; left: 15%; width: 20%; height: 20%;
  background: rgba(0,0,0,0.2);
  filter: blur(8px);
  border-radius: 50%;
  animation: gac-shadow-flicker 0.5s steps(3) infinite;
}
@keyframes gac-desk-shift {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes gac-figure-tremble {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(1deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  75% { transform: translateX(-1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gac-lamp-glow {
  0% { box-shadow: 0 0 30px 15px #d4a04a; opacity: 0.9; }
  50% { box-shadow: 0 0 50px 25px #ffd06a; opacity: 1; }
  100% { box-shadow: 0 0 35px 18px #d4a04a; opacity: 0.95; }
}
@keyframes gac-shadow-flicker {
  0% { opacity: 0.2; }
  33% { opacity: 0.3; }
  66% { opacity: 0.15; }
  100% { opacity: 0.2; }
}

.scn-gilchrist-confession-hopkins-visit {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c1840 40%, #0d0d1a 100%), radial-gradient(ellipse at 50% 80%, #3a2a5a 0%, transparent 70%);
}
.scn-gilchrist-confession-hopkins-visit .gch-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #0d0d1a 100%);
  opacity: 0.8;
}
.scn-gilchrist-confession-hopkins-visit .gch-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 60% 0 0 / 20% 40% 0 0;
}
.scn-gilchrist-confession-hopkins-visit .gch-gilchrist {
  position: absolute; bottom: 15%; left: 35%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gch-sob 4s ease-in-out infinite;
}
.scn-gilchrist-confession-hopkins-visit .gch-shoes {
  position: absolute; bottom: 8%; left: 30%; width: 10%; height: 6%;
  background: #4a3a2a;
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: gch-shoes-tilt 6s ease-in-out infinite;
}
.scn-gilchrist-confession-hopkins-visit .gch-clay {
  position: absolute; bottom: 12%; left: 40%; width: 8%; height: 4%;
  background: #2a3a2a;
  border-radius: 50%;
  box-shadow: 0 0 10px 5px rgba(0,0,0,0.3);
  animation: gch-clay-glow 8s ease-in-out infinite;
}
.scn-gilchrist-confession-hopkins-visit .gch-candle {
  position: absolute; bottom: 50%; left: 8%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #ffd06a 0%, #cc8830 40%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 15px #cc8830;
  animation: gch-candle-flicker 2s steps(5) infinite;
}
.scn-gilchrist-confession-hopkins-visit .gch-hopkins {
  position: absolute; bottom: 20%; right: 15%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gch-stand-still 12s ease-in-out infinite;
}
@keyframes gch-sob {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gch-shoes-tilt {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-12deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes gch-clay-glow {
  0% { box-shadow: 0 0 5px 2px rgba(0,0,0,0.2); }
  50% { box-shadow: 0 0 15px 5px rgba(0,0,0,0.4); }
  100% { box-shadow: 0 0 5px 2px rgba(0,0,0,0.2); }
}
@keyframes gch-candle-flicker {
  0% { opacity: 0.8; transform: scaleY(1); }
  20% { opacity: 0.9; transform: scaleY(1.05); }
  40% { opacity: 0.7; transform: scaleY(0.95); }
  60% { opacity: 0.9; transform: scaleY(1.02); }
  80% { opacity: 0.8; transform: scaleY(1); }
  100% { opacity: 0.8; transform: scaleY(1); }
}
@keyframes gch-stand-still {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

.scn-item-golden-pince-nez {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 40%, #0d0505 100%), radial-gradient(ellipse at 50% 20%, #3a2a2a 0%, transparent 70%);
}
.scn-item-golden-pince-nez .igp-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
}
.scn-item-golden-pince-nez .igp-body {
  position: absolute; bottom: 10%; left: 30%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: igp-body-pulse 4s ease-in-out infinite;
}
.scn-item-golden-pince-nez .igp-desk {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-item-golden-pince-nez .igp-pince {
  position: absolute; bottom: 32%; left: 45%; width: 8%; height: 6%;
  background: radial-gradient(circle at 30% 50%, #c8b060 0%, transparent 40%), radial-gradient(circle at 70% 50%, #c8b060 0%, transparent 40%);
  background-size: 40% 100%;
  background-repeat: no-repeat;
  background-position: 20% center, 80% center;
  border: 1px solid #b09a50;
  border-radius: 50%;
  animation: igp-pince-shimmer 3s ease-in-out infinite;
}
.scn-item-golden-pince-nez .igp-knife {
  position: absolute; bottom: 15%; left: 50%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 0 0;
  transform: rotate(30deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: igp-knife-tilt 8s ease-in-out infinite;
}
.scn-item-golden-pince-nez .igp-window {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0d0d1a 100%);
  border: 2px solid #2a2a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: igp-window-darken 6s ease-in-out infinite alternate;
}
.scn-item-golden-pince-nez .igp-chair {
  position: absolute; bottom: 20%; left: 10%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: igp-chair-sway 10s ease-in-out infinite;
}
@keyframes igp-body-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes igp-pince-shimmer {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.7; transform: scaleX(1); }
}
@keyframes igp-knife-tilt {
  0% { transform: rotate(30deg); }
  50% { transform: rotate(35deg); }
  100% { transform: rotate(30deg); }
}
@keyframes igp-window-darken {
  0% { opacity: 0.8; }
  50% { opacity: 0.5; }
  100% { opacity: 0.8; }
}
@keyframes igp-chair-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}

.scn-pince-nez-clues-reconstruction {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0d0d1a 100%), radial-gradient(ellipse at 50% 80%, #3a3a5a 0%, transparent 70%);
}
.scn-pince-nez-clues-reconstruction .pcr-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  opacity: 0.9;
}
.scn-pince-nez-clues-reconstruction .pcr-woman {
  position: absolute; bottom: 20%; left: 35%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcr-woman-reach 5s ease-in-out infinite;
}
.scn-pince-nez-clues-reconstruction .pcr-bureau {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-pince-nez-clues-reconstruction .pcr-scratches {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 10%;
  background: repeating-linear-gradient(45deg, #2a1a0a 0px, #2a1a0a 2px, transparent 2px, transparent 6px);
  opacity: 0.6;
  animation: pcr-scratch-appear 4s ease-in-out infinite;
}
.scn-pince-nez-clues-reconstruction .pcr-key {
  position: absolute; bottom: 28%; left: 45%; width: 4%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #c8b060 0%, #8a7a4a 60%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px #c8b060;
  animation: pcr-key-turn 6s ease-in-out infinite;
}
.scn-pince-nez-clues-reconstruction .pcr-pince {
  position: absolute; bottom: 35%; left: 48%; width: 6%; height: 4%;
  background: radial-gradient(circle at 30% 50%, #c8b060 0%, transparent 50%), radial-gradient(circle at 70% 50%, #c8b060 0%, transparent 50%);
  background-size: 40% 100%;
  background-repeat: no-repeat;
  background-position: 20% center, 80% center;
  border: 1px solid #b09a50;
  border-radius: 50%;
  animation: pcr-pince-glimmer 3s ease-in-out infinite;
}
.scn-pince-nez-clues-reconstruction .pcr-holmes {
  position: absolute; bottom: 22%; right: 15%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcr-holmes-watch 7s ease-in-out infinite;
}
@keyframes pcr-woman-reach {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  75% { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pcr-scratch-appear {
  0% { opacity: 0.3; }
  50% { opacity: 0.8; }
  100% { opacity: 0.3; }
}
@keyframes pcr-key-turn {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(45deg); }
  100% { transform: rotate(0deg); }
}
@keyframes pcr-pince-glimmer {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.7; transform: scaleX(1); }
}
@keyframes pcr-holmes-watch {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
/* end per-scene blocks */
