.pc-theme-escapeforge{--ef-primary: #332673;--ef-accent: #d9a626;--ef-room-bg: #1d1636;--ef-room-floor: #2c2450;--ef-room-wall: #6f5fb0;--ef-door: #4a3d80}.pc-theme-escapeforge .ef-input{border:2px solid var(--ff-outline);border-radius:.6rem;padding:.5rem .75rem;font-size:1.05rem;min-width:8rem;flex:1 1 8rem;background:var(--ff-paper);color:var(--ff-anvil)}.pc-theme-escapeforge .ef-input:focus-visible{outline:3px solid var(--ff-focus);outline-offset:1px}.pc-theme-escapeforge .ef-cipher-code,.pc-theme-escapeforge .ef-seq-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0;justify-content:center}.pc-theme-escapeforge .ef-cipher-cell{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.6rem;font-family:ui-monospace,monospace;font-size:1.3rem;font-weight:700;background:var(--ef-primary);color:#fff;border-radius:.4rem}.pc-theme-escapeforge .ef-wheel{margin:.8rem 0;padding:.7rem;border:2px dashed var(--ff-slate);border-radius:.8rem;background:var(--ff-warm)}.pc-theme-escapeforge .ef-wheel-strip{display:flex;gap:2px;overflow-x:auto;padding:.2rem 0}.pc-theme-escapeforge .ef-wheel-cell{flex:0 0 auto;width:1.4rem;height:1.7rem;display:inline-flex;align-items:center;justify-content:center;font-family:ui-monospace,monospace;font-size:.85rem;font-weight:600;border-radius:.25rem;background:var(--ff-paper);border:1px solid var(--ff-slate)}.pc-theme-escapeforge .ef-wheel-strip--inner .ef-wheel-cell{background:var(--ff-spark);color:var(--ff-anvil)}.pc-theme-escapeforge .ef-wheel-controls{display:flex;gap:.5rem;margin-top:.5rem}.pc-theme-escapeforge .ef-seq-cell,.pc-theme-escapeforge .ef-scramble-cell{display:inline-flex;align-items:center;justify-content:center;min-width:2.4rem;height:2.6rem;padding:0 .4rem;font-family:ui-monospace,monospace;font-size:1.2rem;font-weight:700;border-radius:.4rem;background:var(--ff-slate);color:#fff}.pc-theme-escapeforge .ef-seq-cell--q{background:var(--ff-spark);color:var(--ff-anvil)}.pc-theme-escapeforge .ef-scramble-cell{background:var(--ef-primary)}.pc-theme-escapeforge .ef-conn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(6rem,1fr));gap:.5rem}.pc-theme-escapeforge .ef-conn-chip{text-align:center}.pc-theme-escapeforge .ef-conn-chip--sel{background:var(--ff-spark);color:var(--ff-anvil);box-shadow:inset 0 0 0 2px var(--ff-outline)}.pc-theme-escapeforge .ef-conn-found{padding:.4rem .6rem;border-radius:.5rem;background:var(--pc-correct-bg);color:var(--pc-correct);font-weight:600}.pc-theme-escapeforge .ef-pat-grid{display:grid;gap:.5rem;max-width:20rem;margin:.7rem auto}.pc-theme-escapeforge .ef-pat-cell{aspect-ratio:1 / 1;min-height:3rem;font-size:1.4rem}.pc-theme-escapeforge .ef-pat-cell--on{background:var(--ff-spark);box-shadow:0 0 0 3px var(--ff-outline) inset;transform:scale(1.04)}.pc-theme-escapeforge .ef-room{position:relative;width:100%;max-width:40rem;margin:.5rem auto;aspect-ratio:5 / 3;border:2px solid var(--ff-outline);border-radius:.8rem;overflow:hidden}.pc-theme-escapeforge .ef-room-svg{display:block;width:100%;height:100%}.pc-theme-escapeforge .ef-room--open{box-shadow:0 0 0 3px var(--ff-spark)}.pc-theme-escapeforge .ef-hotspot{position:absolute;transform:translate(-50%,-50%);width:2.8rem;height:2.8rem;font-size:1.5rem;line-height:1;cursor:pointer;background:var(--ff-paper);border:2px solid var(--ff-outline);border-radius:50%;box-shadow:0 2px 0 var(--ff-outline);display:flex;align-items:center;justify-content:center;animation:ef-pulse 2s ease-in-out infinite}.pc-theme-escapeforge .ef-hotspot:focus-visible{outline:3px solid var(--ff-focus);outline-offset:2px}.pc-theme-escapeforge .ef-hotspot--found{background:var(--ff-spark);animation:none;opacity:.85}@keyframes ef-pulse{0%,to{box-shadow:0 2px 0 var(--ff-outline)}50%{box-shadow:0 2px 0 var(--ff-outline),0 0 0 5px #d9a62659}}@media (prefers-reduced-motion: reduce){.pc-theme-escapeforge .ef-hotspot{animation:none}}.pc-theme-escapeforge .ef-clues{margin-top:.8rem}.pc-theme-escapeforge .ef-clues-list{margin:.4rem 0 0;padding-left:1.1rem;display:grid;gap:.3rem}.pc-theme-escapeforge .ef-lock{margin-top:1rem;padding-top:.8rem;border-top:2px dashed var(--ff-slate)}
